linear_algebra.matrix.adjugate
⟷
Mathlib.LinearAlgebra.Matrix.Adjugate
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)
(last sync)
det_eq_sum_mul_adjugate_row
(#19117)
From lean-matrix-cookbook
@@ -340,7 +340,6 @@ lemma _root_.alg_hom.map_adjugate {R A B : Type*} [comm_semiring R] [comm_ring A
(M : matrix n n A) : f.map_matrix M.adjugate = matrix.adjugate (f.map_matrix M) :=
f.to_ring_hom.map_adjugate _
-
lemma det_adjugate (A : matrix n n α) : (adjugate A).det = A.det ^ (fintype.card n - 1) :=
begin
-- get rid of the `- 1`
@@ -387,6 +386,33 @@ end
adjugate !![a, b; c, d] = !![d, -b; -c, a] :=
adjugate_fin_two _
+lemma adjugate_fin_succ_eq_det_submatrix {n : ℕ} (A : matrix (fin n.succ) (fin n.succ) α) (i j) :
+ adjugate A i j = (-1)^(j + i : ℕ) * det (A.submatrix j.succ_above i.succ_above) :=
+begin
+ simp_rw [adjugate_apply, det_succ_row _ j, update_row_self, submatrix_update_row_succ_above],
+ rw [fintype.sum_eq_single i (λ h hjk, _), pi.single_eq_same, mul_one],
+ rw [pi.single_eq_of_ne hjk, mul_zero, zero_mul],
+end
+
+lemma det_eq_sum_mul_adjugate_row (A : matrix n n α) (i : n) :
+ det A = ∑ j : n, A i j * adjugate A j i :=
+begin
+ haveI : nonempty n := ⟨i⟩,
+ obtain ⟨n', hn'⟩ := nat.exists_eq_succ_of_ne_zero (fintype.card_ne_zero : fintype.card n ≠ 0),
+ obtain ⟨e⟩ := fintype.trunc_equiv_fin_of_card_eq hn',
+ let A' := reindex e e A,
+ suffices : det A' = ∑ j : fin n'.succ, A' (e i) j * adjugate A' j (e i),
+ { simp_rw [A', det_reindex_self, adjugate_reindex, reindex_apply, submatrix_apply, ←e.sum_comp,
+ equiv.symm_apply_apply] at this,
+ exact this },
+ rw det_succ_row A' (e i),
+ simp_rw [mul_assoc, mul_left_comm _ (A' _ _), ←adjugate_fin_succ_eq_det_submatrix],
+end
+
+lemma det_eq_sum_mul_adjugate_col (A : matrix n n α) (j : n) :
+ det A = ∑ i : n, A i j * adjugate A j i :=
+by simpa only [det_transpose, ←adjugate_transpose] using det_eq_sum_mul_adjugate_row Aᵀ j
+
lemma adjugate_conj_transpose [star_ring α] (A : matrix n n α) : A.adjugateᴴ = adjugate (Aᴴ) :=
begin
dsimp only [conj_transpose],
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -604,7 +604,7 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjuga
by
intro M
refine' Polynomial.Monic.isRegular _
- simp only [g, Polynomial.Monic.def', ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
+ simp only [g, Polynomial.Monic.def, ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
rw [← f'_adj, ← f'_adj, ← f'_adj, ← mul_eq_mul (f' (adjugate (g B))), ← f'.map_mul, mul_eq_mul, ←
adjugate_mul_distrib_aux _ _ (hu A).left (hu B).left, RingHom.map_adjugate,
RingHom.map_adjugate, f'_inv, f'_g_mul]
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -466,7 +466,7 @@ theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.c
calc
A'.det * A'.adjugate.det = (A' ⬝ adjugate A').det := (det_mul _ _).symm
_ = A'.det ^ Fintype.card n := by rw [mul_adjugate, det_smul, det_one, mul_one]
- _ = A'.det * A'.det ^ (Fintype.card n - 1) := by rw [← pow_succ, h_card]
+ _ = A'.det * A'.det ^ (Fintype.card n - 1) := by rw [← pow_succ', h_card]
#align matrix.det_adjugate Matrix.det_adjugate
-/
@@ -604,7 +604,7 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjuga
by
intro M
refine' Polynomial.Monic.isRegular _
- simp only [g, Polynomial.Monic.def, ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
+ simp only [g, Polynomial.Monic.def', ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
rw [← f'_adj, ← f'_adj, ← f'_adj, ← mul_eq_mul (f' (adjugate (g B))), ← f'.map_mul, mul_eq_mul, ←
adjugate_mul_distrib_aux _ _ (hu A).left (hu B).left, RingHom.map_adjugate,
RingHom.map_adjugate, f'_inv, f'_g_mul]
@@ -617,7 +617,7 @@ theorem adjugate_pow (A : Matrix n n α) (k : ℕ) : adjugate (A ^ k) = adjugate
by
induction' k with k IH
· simp
- · rw [pow_succ', mul_eq_mul, adjugate_mul_distrib, IH, ← mul_eq_mul, pow_succ]
+ · rw [pow_succ, mul_eq_mul, adjugate_mul_distrib, IH, ← mul_eq_mul, pow_succ']
#align matrix.adjugate_pow Matrix.adjugate_pow
-/
@@ -655,7 +655,7 @@ theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
have is_reg : IsSMulRegular (MvPolynomial (n × n) ℤ) (det A') := fun x y =>
mul_left_cancel₀ (det_mv_polynomial_X_ne_zero n ℤ)
apply is_reg.matrix
- rw [smul_smul, ← pow_succ, h_card', det_smul_adjugate_adjugate]
+ rw [smul_smul, ← pow_succ', h_card', det_smul_adjugate_adjugate]
#align matrix.adjugate_adjugate Matrix.adjugate_adjugate
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -529,7 +529,7 @@ theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
suffices det A' = ∑ j : Fin n'.succ, A' (e i) j * adjugate A' j (e i)
by
simp_rw [A', det_reindex_self, adjugate_reindex, reindex_apply, submatrix_apply, ← e.sum_comp,
- Equiv.symm_apply_apply] at this
+ Equiv.symm_apply_apply] at this
exact this
rw [det_succ_row A' (e i)]
simp_rw [mul_assoc, mul_left_comm _ (A' _ _), ← adjugate_fin_succ_eq_det_submatrix]
@@ -561,7 +561,7 @@ theorem isRegular_of_isLeftRegular_det {A : Matrix n n α} (hA : IsLeftRegular A
rw [← Matrix.one_mul B, ← Matrix.one_mul C, ← Matrix.smul_mul, ← Matrix.smul_mul, ←
adjugate_mul, Matrix.mul_assoc, Matrix.mul_assoc, ← mul_eq_mul A, h, mul_eq_mul]
· intro B C h
- simp only [mul_eq_mul] at h
+ simp only [mul_eq_mul] at h
refine' hA.matrix _
rw [← Matrix.mul_one B, ← Matrix.mul_one C, ← Matrix.mul_smul, ← Matrix.mul_smul, ←
mul_adjugate, ← Matrix.mul_assoc, ← Matrix.mul_assoc, h]
@@ -628,7 +628,7 @@ theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
have : A ⬝ (A.adjugate ⬝ A.adjugate.adjugate) = A ⬝ (A.det ^ (Fintype.card n - 1) • 1) := by
rw [← adjugate_mul_distrib, adjugate_mul, adjugate_smul, adjugate_one]
rwa [← Matrix.mul_assoc, mul_adjugate, Matrix.mul_smul, Matrix.mul_one, Matrix.smul_mul,
- Matrix.one_mul] at this
+ Matrix.one_mul] at this
#align matrix.det_smul_adjugate_adjugate Matrix.det_smul_adjugate_adjugate
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -187,7 +187,7 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
∑ x in s, cramer A (f x) = cramer A (∑ x in s, f x) :=
- (LinearMap.map_sum (cramer A)).symm
+ (map_sum (cramer A)).symm
#align matrix.sum_cramer Matrix.sum_cramer
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2019 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-/
-import Mathbin.Algebra.Regular.Basic
-import Mathbin.LinearAlgebra.Matrix.MvPolynomial
-import Mathbin.LinearAlgebra.Matrix.Polynomial
-import Mathbin.RingTheory.Polynomial.Basic
+import Algebra.Regular.Basic
+import LinearAlgebra.Matrix.MvPolynomial
+import LinearAlgebra.Matrix.Polynomial
+import RingTheory.Polynomial.Basic
#align_import linear_algebra.matrix.adjugate from "leanprover-community/mathlib"@"a99f85220eaf38f14f94e04699943e185a5e1d1a"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2019 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-
-! This file was ported from Lean 3 source module linear_algebra.matrix.adjugate
-! leanprover-community/mathlib commit a99f85220eaf38f14f94e04699943e185a5e1d1a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Regular.Basic
import Mathbin.LinearAlgebra.Matrix.MvPolynomial
import Mathbin.LinearAlgebra.Matrix.Polynomial
import Mathbin.RingTheory.Polynomial.Basic
+#align_import linear_algebra.matrix.adjugate from "leanprover-community/mathlib"@"a99f85220eaf38f14f94e04699943e185a5e1d1a"
+
/-!
# Cramer's rule and adjugate matrices
mathlib commit https://github.com/leanprover-community/mathlib/commit/2fe465deb81bcd7ccafa065bb686888a82f15372
@@ -513,7 +513,7 @@ theorem adjugate_fin_two_of (a b c d : α) : adjugate !![a, b; c, d] = !![d, -b;
#print Matrix.adjugate_fin_succ_eq_det_submatrix /-
theorem adjugate_fin_succ_eq_det_submatrix {n : ℕ} (A : Matrix (Fin n.succ) (Fin n.succ) α) (i j) :
- adjugate A i j = (-1) ^ (j + i : ℕ) * det (A.submatrix j.succAbove i.succAbove) :=
+ adjugate A i j = (-1) ^ (j + i : ℕ) * det (A.submatrix j.succAboveEmb i.succAboveEmb) :=
by
simp_rw [adjugate_apply, det_succ_row _ j, update_row_self, submatrix_update_row_succ_above]
rw [Fintype.sum_eq_single i fun h hjk => _, Pi.single_eq_same, mul_one]
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -154,7 +154,7 @@ theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.singl
@[simp]
theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
by
- ext (i j)
+ ext i j
convert congr_fun (cramer_row_self (1 : Matrix n n α) (Pi.single i 1) i _) j
· simp
· intro j; rw [Matrix.one_eq_pi_single, Pi.single_comm]
@@ -178,7 +178,7 @@ theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n
#print Matrix.cramer_zero /-
theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
by
- ext (i j)
+ ext i j
obtain ⟨j', hj'⟩ : ∃ j', j' ≠ j := exists_ne j
apply det_eq_zero_of_column_eq_zero j'
intro j''
@@ -265,7 +265,7 @@ theorem adjugate_apply (A : Matrix n n α) (i j : n) :
#print Matrix.adjugate_transpose /-
theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ :=
by
- ext (i j)
+ ext i j
rw [transpose_apply, adjugate_apply, adjugate_apply, update_row_transpose, det_transpose]
rw [det_apply', det_apply']
apply Finset.sum_congr rfl
@@ -300,7 +300,7 @@ theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ
theorem adjugate_submatrix_equiv_self (e : n ≃ m) (A : Matrix m m α) :
adjugate (A.submatrix e e) = (adjugate A).submatrix e e :=
by
- ext (i j)
+ ext i j
rw [adjugate_apply, submatrix_apply, adjugate_apply, ← det_submatrix_equiv_self e,
update_row_submatrix_equiv]
congr
@@ -341,7 +341,7 @@ theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
#print Matrix.mul_adjugate /-
theorem mul_adjugate (A : Matrix n n α) : A ⬝ adjugate A = A.det • 1 :=
by
- ext (i j)
+ ext i j
rw [mul_apply, Pi.smul_apply, Pi.smul_apply, one_apply, smul_eq_mul, mul_boole]
simp [mul_adjugate_apply, sum_cramer_apply, cramer_transpose_row_self, Pi.single_apply, eq_comm]
#align matrix.mul_adjugate Matrix.mul_adjugate
@@ -378,7 +378,7 @@ theorem mulVec_cramer (A : Matrix n n α) (b : n → α) : A.mulVec (cramer A b)
#print Matrix.adjugate_subsingleton /-
theorem adjugate_subsingleton [Subsingleton n] (A : Matrix n n α) : adjugate A = 1 :=
by
- ext (i j)
+ ext i j
simp [Subsingleton.elim i j, adjugate_apply, det_eq_elem_of_subsingleton _ i]
#align matrix.adjugate_subsingleton Matrix.adjugate_subsingleton
-/
@@ -395,7 +395,7 @@ theorem adjugate_eq_one_of_card_eq_one {A : Matrix n n α} (h : Fintype.card n =
@[simp]
theorem adjugate_zero [Nontrivial n] : adjugate (0 : Matrix n n α) = 0 :=
by
- ext (i j)
+ ext i j
obtain ⟨j', hj'⟩ : ∃ j', j' ≠ j := exists_ne j
apply det_eq_zero_of_column_eq_zero j'
intro j''
@@ -433,7 +433,7 @@ theorem adjugate_diagonal (v : n → α) :
theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →+* S)
(M : Matrix n n R) : f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
by
- ext (i k)
+ ext i k
have : Pi.single i (1 : S) = f ∘ Pi.single i 1 :=
by
rw [← f.map_one]
@@ -491,7 +491,7 @@ theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
adjugate A = !![A 1 1, -A 0 1; -A 1 0, A 0 0] :=
by
- ext (i j)
+ ext i j
rw [adjugate_apply, det_fin_two]
fin_cases i <;> fin_cases j <;>
simp only [one_mul, Fin.one_eq_zero_iff, Pi.single_eq_same, MulZeroClass.mul_zero, sub_zero,
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -113,14 +113,19 @@ def cramer (A : Matrix n n α) : (n → α) →ₗ[α] n → α :=
#align matrix.cramer Matrix.cramer
-/
+#print Matrix.cramer_apply /-
theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
rfl
#align matrix.cramer_apply Matrix.cramer_apply
+-/
+#print Matrix.cramer_transpose_apply /-
theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det := by
rw [cramer_apply, update_column_transpose, det_transpose]
#align matrix.cramer_transpose_apply Matrix.cramer_transpose_apply
+-/
+#print Matrix.cramer_transpose_row_self /-
theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.det :=
by
ext j
@@ -134,14 +139,18 @@ theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.de
apply det_zero_of_row_eq h
rw [update_row_self, update_row_ne (Ne.symm h)]
#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_self
+-/
+#print Matrix.cramer_row_self /-
theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.single i A.det :=
by
rw [← transpose_transpose A, det_transpose]
convert cramer_transpose_row_self Aᵀ i
exact funext h
#align matrix.cramer_row_self Matrix.cramer_row_self
+-/
+#print Matrix.cramer_one /-
@[simp]
theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
by
@@ -150,17 +159,23 @@ theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
· simp
· intro j; rw [Matrix.one_eq_pi_single, Pi.single_comm]
#align matrix.cramer_one Matrix.cramer_one
+-/
+#print Matrix.cramer_smul /-
theorem cramer_smul (r : α) (A : Matrix n n α) :
cramer (r • A) = r ^ (Fintype.card n - 1) • cramer A :=
LinearMap.ext fun b => funext fun _ => det_updateColumn_smul' _ _ _ _
#align matrix.cramer_smul Matrix.cramer_smul
+-/
+#print Matrix.cramer_subsingleton_apply /-
@[simp]
theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n → α) (i : n) :
cramer A b i = b i := by rw [cramer_apply, det_eq_elem_of_subsingleton _ i, update_column_self]
#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_apply
+-/
+#print Matrix.cramer_zero /-
theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
by
ext (i j)
@@ -169,13 +184,17 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
intro j''
simp [update_column_ne hj']
#align matrix.cramer_zero Matrix.cramer_zero
+-/
+#print Matrix.sum_cramer /-
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
∑ x in s, cramer A (f x) = cramer A (∑ x in s, f x) :=
(LinearMap.map_sum (cramer A)).symm
#align matrix.sum_cramer Matrix.sum_cramer
+-/
+#print Matrix.sum_cramer_apply /-
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
∑ x in s, cramer A (fun j => f j x) i = cramer A (fun j : n => ∑ x in s, f j x) i :=
@@ -185,7 +204,9 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
_ = cramer A (fun j : n => ∑ x in s, f j x) i := by rw [sum_cramer, cramer_apply]; congr with j;
apply Finset.sum_apply
#align matrix.sum_cramer_apply Matrix.sum_cramer_apply
+-/
+#print Matrix.cramer_submatrix_equiv /-
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
by
@@ -193,11 +214,14 @@ theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α)
simp_rw [Function.comp_apply, cramer_apply, update_column_submatrix_equiv,
det_submatrix_equiv_self e]
#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equiv
+-/
+#print Matrix.cramer_reindex /-
theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
cramer_submatrix_equiv _ _ _
#align matrix.cramer_reindex Matrix.cramer_reindex
+-/
end Cramer
@@ -231,10 +255,12 @@ theorem adjugate_def (A : Matrix n n α) : adjugate A = of fun i => cramer Aᵀ
#align matrix.adjugate_def Matrix.adjugate_def
-/
+#print Matrix.adjugate_apply /-
theorem adjugate_apply (A : Matrix n n α) (i j : n) :
adjugate A i j = (A.updateRow j (Pi.single i 1)).det := by
rw [adjugate_def, of_apply, cramer_apply, update_column_transpose, det_transpose]
#align matrix.adjugate_apply Matrix.adjugate_apply
+-/
#print Matrix.adjugate_transpose /-
theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ :=
@@ -289,6 +315,7 @@ theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
#align matrix.adjugate_reindex Matrix.adjugate_reindex
-/
+#print Matrix.cramer_eq_adjugate_mulVec /-
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
@@ -301,34 +328,44 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
nth_rw 1 [this]; ext k
simp [mul_vec, dot_product, mul_comm]
#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVec
+-/
+#print Matrix.mul_adjugate_apply /-
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
A i k * adjugate A k j = cramer Aᵀ (Pi.single k (A i k)) j := by
erw [← smul_eq_mul, ← Pi.smul_apply, ← LinearMap.map_smul, ← Pi.single_smul', smul_eq_mul,
mul_one]
#align matrix.mul_adjugate_apply Matrix.mul_adjugate_apply
+-/
+#print Matrix.mul_adjugate /-
theorem mul_adjugate (A : Matrix n n α) : A ⬝ adjugate A = A.det • 1 :=
by
ext (i j)
rw [mul_apply, Pi.smul_apply, Pi.smul_apply, one_apply, smul_eq_mul, mul_boole]
simp [mul_adjugate_apply, sum_cramer_apply, cramer_transpose_row_self, Pi.single_apply, eq_comm]
#align matrix.mul_adjugate Matrix.mul_adjugate
+-/
+#print Matrix.adjugate_mul /-
theorem adjugate_mul (A : Matrix n n α) : adjugate A ⬝ A = A.det • 1 :=
calc
adjugate A ⬝ A = (Aᵀ ⬝ adjugate Aᵀ)ᵀ := by
rw [← adjugate_transpose, ← transpose_mul, transpose_transpose]
_ = A.det • 1 := by rw [mul_adjugate Aᵀ, det_transpose, transpose_smul, transpose_one]
#align matrix.adjugate_mul Matrix.adjugate_mul
+-/
+#print Matrix.adjugate_smul /-
theorem adjugate_smul (r : α) (A : Matrix n n α) :
adjugate (r • A) = r ^ (Fintype.card n - 1) • adjugate A :=
by
rw [adjugate, adjugate, transpose_smul, cramer_smul]
rfl
#align matrix.adjugate_smul Matrix.adjugate_smul
+-/
+#print Matrix.mulVec_cramer /-
/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
divides `b`. -/
@@ -336,19 +373,25 @@ divides `b`. -/
theorem mulVec_cramer (A : Matrix n n α) (b : n → α) : A.mulVec (cramer A b) = A.det • b := by
rw [cramer_eq_adjugate_mul_vec, mul_vec_mul_vec, mul_adjugate, smul_mul_vec_assoc, one_mul_vec]
#align matrix.mul_vec_cramer Matrix.mulVec_cramer
+-/
+#print Matrix.adjugate_subsingleton /-
theorem adjugate_subsingleton [Subsingleton n] (A : Matrix n n α) : adjugate A = 1 :=
by
ext (i j)
simp [Subsingleton.elim i j, adjugate_apply, det_eq_elem_of_subsingleton _ i]
#align matrix.adjugate_subsingleton Matrix.adjugate_subsingleton
+-/
+#print Matrix.adjugate_eq_one_of_card_eq_one /-
theorem adjugate_eq_one_of_card_eq_one {A : Matrix n n α} (h : Fintype.card n = 1) :
adjugate A = 1 :=
haveI : Subsingleton n := fintype.card_le_one_iff_subsingleton.mp h.le
adjugate_subsingleton _
#align matrix.adjugate_eq_one_of_card_eq_one Matrix.adjugate_eq_one_of_card_eq_one
+-/
+#print Matrix.adjugate_zero /-
@[simp]
theorem adjugate_zero [Nontrivial n] : adjugate (0 : Matrix n n α) = 0 :=
by
@@ -358,12 +401,16 @@ theorem adjugate_zero [Nontrivial n] : adjugate (0 : Matrix n n α) = 0 :=
intro j''
simp [update_column_ne hj']
#align matrix.adjugate_zero Matrix.adjugate_zero
+-/
+#print Matrix.adjugate_one /-
@[simp]
theorem adjugate_one : adjugate (1 : Matrix n n α) = 1 := by ext;
simp [adjugate_def, Matrix.one_apply, Pi.single_apply, eq_comm]
#align matrix.adjugate_one Matrix.adjugate_one
+-/
+#print Matrix.adjugate_diagonal /-
@[simp]
theorem adjugate_diagonal (v : n → α) :
adjugate (diagonal v) = diagonal fun i => ∏ j in Finset.univ.eraseₓ i, v j :=
@@ -380,7 +427,9 @@ theorem adjugate_diagonal (v : n → α) :
· rw [update_column_self, Pi.single_eq_of_ne' hij]
· rw [update_column_ne hjk, diagonal_apply_ne' _ hjk]
#align matrix.adjugate_diagonal Matrix.adjugate_diagonal
+-/
+#print RingHom.map_adjugate /-
theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →+* S)
(M : Matrix n n R) : f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
by
@@ -392,13 +441,17 @@ theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →
rw [adjugate_apply, RingHom.mapMatrix_apply, map_apply, RingHom.mapMatrix_apply, this, ←
map_update_row, ← RingHom.mapMatrix_apply, ← RingHom.map_det, ← adjugate_apply]
#align ring_hom.map_adjugate RingHom.map_adjugate
+-/
+#print AlgHom.map_adjugate /-
theorem AlgHom.map_adjugate {R A B : Type _} [CommSemiring R] [CommRing A] [CommRing B]
[Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (M : Matrix n n A) :
f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
f.toRingHom.map_adjugate _
#align alg_hom.map_adjugate AlgHom.map_adjugate
+-/
+#print Matrix.det_adjugate /-
theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.card n - 1) :=
by
-- get rid of the `- 1`
@@ -418,17 +471,23 @@ theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.c
_ = A'.det ^ Fintype.card n := by rw [mul_adjugate, det_smul, det_one, mul_one]
_ = A'.det * A'.det ^ (Fintype.card n - 1) := by rw [← pow_succ, h_card]
#align matrix.det_adjugate Matrix.det_adjugate
+-/
+#print Matrix.adjugate_fin_zero /-
@[simp]
theorem adjugate_fin_zero (A : Matrix (Fin 0) (Fin 0) α) : adjugate A = 0 :=
Subsingleton.elim _ _
#align matrix.adjugate_fin_zero Matrix.adjugate_fin_zero
+-/
+#print Matrix.adjugate_fin_one /-
@[simp]
theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
adjugate_subsingleton A
#align matrix.adjugate_fin_one Matrix.adjugate_fin_one
+-/
+#print Matrix.adjugate_fin_two /-
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
adjugate A = !![A 1 1, -A 0 1; -A 1 0, A 0 0] :=
by
@@ -443,6 +502,7 @@ theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
cons_val', cons_val_fin_one, cons_val_one, head_fin_const, neg_inj, eq_self_iff_true,
cons_val_zero, head_cons, mul_one]
#align matrix.adjugate_fin_two Matrix.adjugate_fin_two
+-/
#print Matrix.adjugate_fin_two_of /-
@[simp]
@@ -461,6 +521,7 @@ theorem adjugate_fin_succ_eq_det_submatrix {n : ℕ} (A : Matrix (Fin n.succ) (F
#align matrix.adjugate_fin_succ_eq_det_submatrix Matrix.adjugate_fin_succ_eq_det_submatrix
-/
+#print Matrix.det_eq_sum_mul_adjugate_row /-
theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
det A = ∑ j : n, A i j * adjugate A j i :=
by
@@ -476,11 +537,14 @@ theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
rw [det_succ_row A' (e i)]
simp_rw [mul_assoc, mul_left_comm _ (A' _ _), ← adjugate_fin_succ_eq_det_submatrix]
#align matrix.det_eq_sum_mul_adjugate_row Matrix.det_eq_sum_mul_adjugate_row
+-/
+#print Matrix.det_eq_sum_mul_adjugate_col /-
theorem det_eq_sum_mul_adjugate_col (A : Matrix n n α) (j : n) :
det A = ∑ i : n, A i j * adjugate A j i := by
simpa only [det_transpose, ← adjugate_transpose] using det_eq_sum_mul_adjugate_row Aᵀ j
#align matrix.det_eq_sum_mul_adjugate_col Matrix.det_eq_sum_mul_adjugate_col
+-/
#print Matrix.adjugate_conjTranspose /-
theorem adjugate_conjTranspose [StarRing α] (A : Matrix n n α) : A.adjugateᴴ = adjugate Aᴴ :=
@@ -491,6 +555,7 @@ theorem adjugate_conjTranspose [StarRing α] (A : Matrix n n α) : A.adjugateᴴ
#align matrix.adjugate_conj_transpose Matrix.adjugate_conjTranspose
-/
+#print Matrix.isRegular_of_isLeftRegular_det /-
theorem isRegular_of_isLeftRegular_det {A : Matrix n n α} (hA : IsLeftRegular A.det) :
IsRegular A := by
constructor
@@ -504,7 +569,9 @@ theorem isRegular_of_isLeftRegular_det {A : Matrix n n α} (hA : IsLeftRegular A
rw [← Matrix.mul_one B, ← Matrix.mul_one C, ← Matrix.mul_smul, ← Matrix.mul_smul, ←
mul_adjugate, ← Matrix.mul_assoc, ← Matrix.mul_assoc, h]
#align matrix.is_regular_of_is_left_regular_det Matrix.isRegular_of_isLeftRegular_det
+-/
+#print Matrix.adjugate_mul_distrib_aux /-
theorem adjugate_mul_distrib_aux (A B : Matrix n n α) (hA : IsLeftRegular A.det)
(hB : IsLeftRegular B.det) : adjugate (A ⬝ B) = adjugate B ⬝ adjugate A :=
by
@@ -515,7 +582,9 @@ theorem adjugate_mul_distrib_aux (A B : Matrix n n α) (hA : IsLeftRegular A.det
rw [mul_eq_mul, mul_adjugate, mul_eq_mul, Matrix.mul_assoc, ← Matrix.mul_assoc B, mul_adjugate,
smul_mul, Matrix.one_mul, mul_smul, mul_adjugate, smul_smul, mul_comm, ← det_mul]
#align matrix.adjugate_mul_distrib_aux Matrix.adjugate_mul_distrib_aux
+-/
+#print Matrix.adjugate_mul_distrib /-
/-- Proof follows from "The trace Cayley-Hamilton theorem" by Darij Grinberg, Section 5.3
-/
theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjugate B ⬝ adjugate A :=
@@ -543,7 +612,9 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjuga
adjugate_mul_distrib_aux _ _ (hu A).left (hu B).left, RingHom.map_adjugate,
RingHom.map_adjugate, f'_inv, f'_g_mul]
#align matrix.adjugate_mul_distrib Matrix.adjugate_mul_distrib
+-/
+#print Matrix.adjugate_pow /-
@[simp]
theorem adjugate_pow (A : Matrix n n α) (k : ℕ) : adjugate (A ^ k) = adjugate A ^ k :=
by
@@ -551,7 +622,9 @@ theorem adjugate_pow (A : Matrix n n α) (k : ℕ) : adjugate (A ^ k) = adjugate
· simp
· rw [pow_succ', mul_eq_mul, adjugate_mul_distrib, IH, ← mul_eq_mul, pow_succ]
#align matrix.adjugate_pow Matrix.adjugate_pow
+-/
+#print Matrix.det_smul_adjugate_adjugate /-
theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
det A • adjugate (adjugate A) = det A ^ (Fintype.card n - 1) • A :=
by
@@ -560,7 +633,9 @@ theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
rwa [← Matrix.mul_assoc, mul_adjugate, Matrix.mul_smul, Matrix.mul_one, Matrix.smul_mul,
Matrix.one_mul] at this
#align matrix.det_smul_adjugate_adjugate Matrix.det_smul_adjugate_adjugate
+-/
+#print Matrix.adjugate_adjugate /-
/-- Note that this is not true for `fintype.card n = 1` since `1 - 2 = 0` and not `-1`. -/
theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
adjugate (adjugate A) = det A ^ (Fintype.card n - 2) • A :=
@@ -585,12 +660,15 @@ theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
apply is_reg.matrix
rw [smul_smul, ← pow_succ, h_card', det_smul_adjugate_adjugate]
#align matrix.adjugate_adjugate Matrix.adjugate_adjugate
+-/
+#print Matrix.adjugate_adjugate' /-
/-- A weaker version of `matrix.adjugate_adjugate` that uses `nontrivial`. -/
theorem adjugate_adjugate' (A : Matrix n n α) [Nontrivial n] :
adjugate (adjugate A) = det A ^ (Fintype.card n - 2) • A :=
adjugate_adjugate _ <| Fintype.one_lt_card.ne'
#align matrix.adjugate_adjugate' Matrix.adjugate_adjugate'
+-/
end Adjugate
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -172,15 +172,15 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
- (∑ x in s, cramer A (f x)) = cramer A (∑ x in s, f x) :=
+ ∑ x in s, cramer A (f x) = cramer A (∑ x in s, f x) :=
(LinearMap.map_sum (cramer A)).symm
#align matrix.sum_cramer Matrix.sum_cramer
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
- (∑ x in s, cramer A (fun j => f j x) i) = cramer A (fun j : n => ∑ x in s, f j x) i :=
+ ∑ x in s, cramer A (fun j => f j x) i = cramer A (fun j : n => ∑ x in s, f j x) i :=
calc
- (∑ x in s, cramer A (fun j => f j x) i) = (∑ x in s, cramer A fun j => f j x) i :=
+ ∑ x in s, cramer A (fun j => f j x) i = (∑ x in s, cramer A fun j => f j x) i :=
(Finset.sum_apply i s _).symm
_ = cramer A (fun j : n => ∑ x in s, f j x) i := by rw [sum_cramer, cramer_apply]; congr with j;
apply Finset.sum_apply
@@ -256,7 +256,7 @@ theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ
congr 1 with rfl
rw [Pi.single_eq_same, Pi.single_eq_same]
· -- Otherwise, we need to show that there is a `0` somewhere in the product.
- have : (∏ j' : n, update_column A j (Pi.single i 1) (σ j') j') = 0 :=
+ have : ∏ j' : n, update_column A j (Pi.single i 1) (σ j') j' = 0 :=
by
apply prod_eq_zero (mem_univ j)
rw [update_column_self, Pi.single_eq_of_ne' h]
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -184,7 +184,6 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
(Finset.sum_apply i s _).symm
_ = cramer A (fun j : n => ∑ x in s, f j x) i := by rw [sum_cramer, cramer_apply]; congr with j;
apply Finset.sum_apply
-
#align matrix.sum_cramer_apply Matrix.sum_cramer_apply
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
@@ -321,7 +320,6 @@ theorem adjugate_mul (A : Matrix n n α) : adjugate A ⬝ A = A.det • 1 :=
adjugate A ⬝ A = (Aᵀ ⬝ adjugate Aᵀ)ᵀ := by
rw [← adjugate_transpose, ← transpose_mul, transpose_transpose]
_ = A.det • 1 := by rw [mul_adjugate Aᵀ, det_transpose, transpose_smul, transpose_one]
-
#align matrix.adjugate_mul Matrix.adjugate_mul
theorem adjugate_smul (r : α) (A : Matrix n n α) :
@@ -419,7 +417,6 @@ theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.c
A'.det * A'.adjugate.det = (A' ⬝ adjugate A').det := (det_mul _ _).symm
_ = A'.det ^ Fintype.card n := by rw [mul_adjugate, det_smul, det_one, mul_one]
_ = A'.det * A'.det ^ (Fintype.card n - 1) := by rw [← pow_succ, h_card]
-
#align matrix.det_adjugate Matrix.det_adjugate
@[simp]
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -454,6 +454,7 @@ theorem adjugate_fin_two_of (a b c d : α) : adjugate !![a, b; c, d] = !![d, -b;
#align matrix.adjugate_fin_two_of Matrix.adjugate_fin_two_of
-/
+#print Matrix.adjugate_fin_succ_eq_det_submatrix /-
theorem adjugate_fin_succ_eq_det_submatrix {n : ℕ} (A : Matrix (Fin n.succ) (Fin n.succ) α) (i j) :
adjugate A i j = (-1) ^ (j + i : ℕ) * det (A.submatrix j.succAbove i.succAbove) :=
by
@@ -461,6 +462,7 @@ theorem adjugate_fin_succ_eq_det_submatrix {n : ℕ} (A : Matrix (Fin n.succ) (F
rw [Fintype.sum_eq_single i fun h hjk => _, Pi.single_eq_same, mul_one]
rw [Pi.single_eq_of_ne hjk, MulZeroClass.mul_zero, MulZeroClass.zero_mul]
#align matrix.adjugate_fin_succ_eq_det_submatrix Matrix.adjugate_fin_succ_eq_det_submatrix
+-/
theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
det A = ∑ j : n, A i j * adjugate A j i :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -472,7 +472,7 @@ theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
suffices det A' = ∑ j : Fin n'.succ, A' (e i) j * adjugate A' j (e i)
by
simp_rw [A', det_reindex_self, adjugate_reindex, reindex_apply, submatrix_apply, ← e.sum_comp,
- Equiv.symm_apply_apply] at this
+ Equiv.symm_apply_apply] at this
exact this
rw [det_succ_row A' (e i)]
simp_rw [mul_assoc, mul_left_comm _ (A' _ _), ← adjugate_fin_succ_eq_det_submatrix]
@@ -500,7 +500,7 @@ theorem isRegular_of_isLeftRegular_det {A : Matrix n n α} (hA : IsLeftRegular A
rw [← Matrix.one_mul B, ← Matrix.one_mul C, ← Matrix.smul_mul, ← Matrix.smul_mul, ←
adjugate_mul, Matrix.mul_assoc, Matrix.mul_assoc, ← mul_eq_mul A, h, mul_eq_mul]
· intro B C h
- simp only [mul_eq_mul] at h
+ simp only [mul_eq_mul] at h
refine' hA.matrix _
rw [← Matrix.mul_one B, ← Matrix.mul_one C, ← Matrix.mul_smul, ← Matrix.mul_smul, ←
mul_adjugate, ← Matrix.mul_assoc, ← Matrix.mul_assoc, h]
@@ -559,7 +559,7 @@ theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
have : A ⬝ (A.adjugate ⬝ A.adjugate.adjugate) = A ⬝ (A.det ^ (Fintype.card n - 1) • 1) := by
rw [← adjugate_mul_distrib, adjugate_mul, adjugate_smul, adjugate_one]
rwa [← Matrix.mul_assoc, mul_adjugate, Matrix.mul_smul, Matrix.mul_one, Matrix.smul_mul,
- Matrix.one_mul] at this
+ Matrix.one_mul] at this
#align matrix.det_smul_adjugate_adjugate Matrix.det_smul_adjugate_adjugate
/-- Note that this is not true for `fintype.card n = 1` since `1 - 2 = 0` and not `-1`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module linear_algebra.matrix.adjugate
-! leanprover-community/mathlib commit 4f81bc21e32048db7344b7867946e992cf5f68cc
+! leanprover-community/mathlib commit a99f85220eaf38f14f94e04699943e185a5e1d1a
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -454,6 +454,35 @@ theorem adjugate_fin_two_of (a b c d : α) : adjugate !![a, b; c, d] = !![d, -b;
#align matrix.adjugate_fin_two_of Matrix.adjugate_fin_two_of
-/
+theorem adjugate_fin_succ_eq_det_submatrix {n : ℕ} (A : Matrix (Fin n.succ) (Fin n.succ) α) (i j) :
+ adjugate A i j = (-1) ^ (j + i : ℕ) * det (A.submatrix j.succAbove i.succAbove) :=
+ by
+ simp_rw [adjugate_apply, det_succ_row _ j, update_row_self, submatrix_update_row_succ_above]
+ rw [Fintype.sum_eq_single i fun h hjk => _, Pi.single_eq_same, mul_one]
+ rw [Pi.single_eq_of_ne hjk, MulZeroClass.mul_zero, MulZeroClass.zero_mul]
+#align matrix.adjugate_fin_succ_eq_det_submatrix Matrix.adjugate_fin_succ_eq_det_submatrix
+
+theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
+ det A = ∑ j : n, A i j * adjugate A j i :=
+ by
+ haveI : Nonempty n := ⟨i⟩
+ obtain ⟨n', hn'⟩ := Nat.exists_eq_succ_of_ne_zero (Fintype.card_ne_zero : Fintype.card n ≠ 0)
+ obtain ⟨e⟩ := Fintype.truncEquivFinOfCardEq hn'
+ let A' := reindex e e A
+ suffices det A' = ∑ j : Fin n'.succ, A' (e i) j * adjugate A' j (e i)
+ by
+ simp_rw [A', det_reindex_self, adjugate_reindex, reindex_apply, submatrix_apply, ← e.sum_comp,
+ Equiv.symm_apply_apply] at this
+ exact this
+ rw [det_succ_row A' (e i)]
+ simp_rw [mul_assoc, mul_left_comm _ (A' _ _), ← adjugate_fin_succ_eq_det_submatrix]
+#align matrix.det_eq_sum_mul_adjugate_row Matrix.det_eq_sum_mul_adjugate_row
+
+theorem det_eq_sum_mul_adjugate_col (A : Matrix n n α) (j : n) :
+ det A = ∑ i : n, A i j * adjugate A j i := by
+ simpa only [det_transpose, ← adjugate_transpose] using det_eq_sum_mul_adjugate_row Aᵀ j
+#align matrix.det_eq_sum_mul_adjugate_col Matrix.det_eq_sum_mul_adjugate_col
+
#print Matrix.adjugate_conjTranspose /-
theorem adjugate_conjTranspose [StarRing α] (A : Matrix n n α) : A.adjugateᴴ = adjugate Aᴴ :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -56,7 +56,7 @@ variable {m : Type u} {n : Type v} {α : Type w}
variable [DecidableEq n] [Fintype n] [DecidableEq m] [Fintype m] [CommRing α]
-open Matrix BigOperators Polynomial
+open scoped Matrix BigOperators Polynomial
open Equiv Equiv.Perm Finset
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -113,26 +113,14 @@ def cramer (A : Matrix n n α) : (n → α) →ₗ[α] n → α :=
#align matrix.cramer Matrix.cramer
-/
-/- warning: matrix.cramer_apply -> Matrix.cramer_apply is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_apply Matrix.cramer_applyₓ'. -/
theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
rfl
#align matrix.cramer_apply Matrix.cramer_apply
-/- warning: matrix.cramer_transpose_apply -> Matrix.cramer_transpose_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_apply Matrix.cramer_transpose_applyₓ'. -/
theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det := by
rw [cramer_apply, update_column_transpose, det_transpose]
#align matrix.cramer_transpose_apply Matrix.cramer_transpose_apply
-/- warning: matrix.cramer_transpose_row_self -> Matrix.cramer_transpose_row_self is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_selfₓ'. -/
theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.det :=
by
ext j
@@ -147,9 +135,6 @@ theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.de
rw [update_row_self, update_row_ne (Ne.symm h)]
#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_self
-/- warning: matrix.cramer_row_self -> Matrix.cramer_row_self is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_row_self Matrix.cramer_row_selfₓ'. -/
theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.single i A.det :=
by
rw [← transpose_transpose A, det_transpose]
@@ -157,9 +142,6 @@ theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.singl
exact funext h
#align matrix.cramer_row_self Matrix.cramer_row_self
-/- warning: matrix.cramer_one -> Matrix.cramer_one is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_one Matrix.cramer_oneₓ'. -/
@[simp]
theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
by
@@ -169,28 +151,16 @@ theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
· intro j; rw [Matrix.one_eq_pi_single, Pi.single_comm]
#align matrix.cramer_one Matrix.cramer_one
-/- warning: matrix.cramer_smul -> Matrix.cramer_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_smul Matrix.cramer_smulₓ'. -/
theorem cramer_smul (r : α) (A : Matrix n n α) :
cramer (r • A) = r ^ (Fintype.card n - 1) • cramer A :=
LinearMap.ext fun b => funext fun _ => det_updateColumn_smul' _ _ _ _
#align matrix.cramer_smul Matrix.cramer_smul
-/- warning: matrix.cramer_subsingleton_apply -> Matrix.cramer_subsingleton_apply is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_applyₓ'. -/
@[simp]
theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n → α) (i : n) :
cramer A b i = b i := by rw [cramer_apply, det_eq_elem_of_subsingleton _ i, update_column_self]
#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_apply
-/- warning: matrix.cramer_zero -> Matrix.cramer_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_zero Matrix.cramer_zeroₓ'. -/
theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
by
ext (i j)
@@ -200,18 +170,12 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
simp [update_column_ne hj']
#align matrix.cramer_zero Matrix.cramer_zero
-/- warning: matrix.sum_cramer -> Matrix.sum_cramer is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer Matrix.sum_cramerₓ'. -/
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
(∑ x in s, cramer A (f x)) = cramer A (∑ x in s, f x) :=
(LinearMap.map_sum (cramer A)).symm
#align matrix.sum_cramer Matrix.sum_cramer
-/- warning: matrix.sum_cramer_apply -> Matrix.sum_cramer_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer_apply Matrix.sum_cramer_applyₓ'. -/
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
(∑ x in s, cramer A (fun j => f j x) i) = cramer A (fun j : n => ∑ x in s, f j x) i :=
@@ -223,9 +187,6 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
#align matrix.sum_cramer_apply Matrix.sum_cramer_apply
-/- warning: matrix.cramer_submatrix_equiv -> Matrix.cramer_submatrix_equiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equivₓ'. -/
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
by
@@ -234,9 +195,6 @@ theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α)
det_submatrix_equiv_self e]
#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equiv
-/- warning: matrix.cramer_reindex -> Matrix.cramer_reindex is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_reindex Matrix.cramer_reindexₓ'. -/
theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
cramer_submatrix_equiv _ _ _
@@ -274,12 +232,6 @@ theorem adjugate_def (A : Matrix n n α) : adjugate A = of fun i => cramer Aᵀ
#align matrix.adjugate_def Matrix.adjugate_def
-/
-/- warning: matrix.adjugate_apply -> Matrix.adjugate_apply is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n), Eq.{succ u2} α (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A i j) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A j (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (OfNat.ofNat.{u2} α 1 (OfNat.mk.{u2} α 1 (One.one.{u2} α (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n), Eq.{succ u2} α (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A i j) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A j (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (OfNat.ofNat.{u2} α 1 (One.toOfNat1.{u2} α (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_apply Matrix.adjugate_applyₓ'. -/
theorem adjugate_apply (A : Matrix n n α) (i j : n) :
adjugate A i j = (A.updateRow j (Pi.single i 1)).det := by
rw [adjugate_def, of_apply, cramer_apply, update_column_transpose, det_transpose]
@@ -338,9 +290,6 @@ theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
#align matrix.adjugate_reindex Matrix.adjugate_reindex
-/
-/- warning: matrix.cramer_eq_adjugate_mul_vec -> Matrix.cramer_eq_adjugate_mulVec is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVecₓ'. -/
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
@@ -354,21 +303,12 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
simp [mul_vec, dot_product, mul_comm]
#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVec
-/- warning: matrix.mul_adjugate_apply -> Matrix.mul_adjugate_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate_apply Matrix.mul_adjugate_applyₓ'. -/
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
A i k * adjugate A k j = cramer Aᵀ (Pi.single k (A i k)) j := by
erw [← smul_eq_mul, ← Pi.smul_apply, ← LinearMap.map_smul, ← Pi.single_smul', smul_eq_mul,
mul_one]
#align matrix.mul_adjugate_apply Matrix.mul_adjugate_apply
-/- warning: matrix.mul_adjugate -> Matrix.mul_adjugate is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
-Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate Matrix.mul_adjugateₓ'. -/
theorem mul_adjugate (A : Matrix n n α) : A ⬝ adjugate A = A.det • 1 :=
by
ext (i j)
@@ -376,12 +316,6 @@ theorem mul_adjugate (A : Matrix n n α) : A ⬝ adjugate A = A.det • 1 :=
simp [mul_adjugate_apply, sum_cramer_apply, cramer_transpose_row_self, Pi.single_apply, eq_comm]
#align matrix.mul_adjugate Matrix.mul_adjugate
-/- warning: matrix.adjugate_mul -> Matrix.adjugate_mul is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) A) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) A) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_mul Matrix.adjugate_mulₓ'. -/
theorem adjugate_mul (A : Matrix n n α) : adjugate A ⬝ A = A.det • 1 :=
calc
adjugate A ⬝ A = (Aᵀ ⬝ adjugate Aᵀ)ᵀ := by
@@ -390,12 +324,6 @@ theorem adjugate_mul (A : Matrix n n α) : adjugate A ⬝ A = A.det • 1 :=
#align matrix.adjugate_mul Matrix.adjugate_mul
-/- warning: matrix.adjugate_smul -> Matrix.adjugate_smul is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) r A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_smul Matrix.adjugate_smulₓ'. -/
theorem adjugate_smul (r : α) (A : Matrix n n α) :
adjugate (r • A) = r ^ (Fintype.card n - 1) • adjugate A :=
by
@@ -403,9 +331,6 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
rfl
#align matrix.adjugate_smul Matrix.adjugate_smul
-/- warning: matrix.mul_vec_cramer -> Matrix.mulVec_cramer is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.mul_vec_cramer Matrix.mulVec_cramerₓ'. -/
/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
divides `b`. -/
@@ -414,36 +339,18 @@ theorem mulVec_cramer (A : Matrix n n α) (b : n → α) : A.mulVec (cramer A b)
rw [cramer_eq_adjugate_mul_vec, mul_vec_mul_vec, mul_adjugate, smul_mul_vec_assoc, one_mul_vec]
#align matrix.mul_vec_cramer Matrix.mulVec_cramer
-/- warning: matrix.adjugate_subsingleton -> Matrix.adjugate_subsingleton is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_subsingleton Matrix.adjugate_subsingletonₓ'. -/
theorem adjugate_subsingleton [Subsingleton n] (A : Matrix n n α) : adjugate A = 1 :=
by
ext (i j)
simp [Subsingleton.elim i j, adjugate_apply, det_eq_elem_of_subsingleton _ i]
#align matrix.adjugate_subsingleton Matrix.adjugate_subsingleton
-/- warning: matrix.adjugate_eq_one_of_card_eq_one -> Matrix.adjugate_eq_one_of_card_eq_one is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (Eq.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (Eq.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) -> (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_eq_one_of_card_eq_one Matrix.adjugate_eq_one_of_card_eq_oneₓ'. -/
theorem adjugate_eq_one_of_card_eq_one {A : Matrix n n α} (h : Fintype.card n = 1) :
adjugate A = 1 :=
haveI : Subsingleton n := fintype.card_le_one_iff_subsingleton.mp h.le
adjugate_subsingleton _
#align matrix.adjugate_eq_one_of_card_eq_one Matrix.adjugate_eq_one_of_card_eq_one
-/- warning: matrix.adjugate_zero -> Matrix.adjugate_zero is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.zero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasZero.{u2, u1, u1} n n α (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.zero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasZero.{u2, u1, u1} n n α (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_zero Matrix.adjugate_zeroₓ'. -/
@[simp]
theorem adjugate_zero [Nontrivial n] : adjugate (0 : Matrix n n α) = 0 :=
by
@@ -454,23 +361,11 @@ theorem adjugate_zero [Nontrivial n] : adjugate (0 : Matrix n n α) = 0 :=
simp [update_column_ne hj']
#align matrix.adjugate_zero Matrix.adjugate_zero
-/- warning: matrix.adjugate_one -> Matrix.adjugate_one is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_one Matrix.adjugate_oneₓ'. -/
@[simp]
theorem adjugate_one : adjugate (1 : Matrix n n α) = 1 := by ext;
simp [adjugate_def, Matrix.one_apply, Pi.single_apply, eq_comm]
#align matrix.adjugate_one Matrix.adjugate_one
-/- warning: matrix.adjugate_diagonal -> Matrix.adjugate_diagonal is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (v : n -> α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.diagonal.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) v)) (Matrix.diagonal.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (fun (i : n) => Finset.prod.{u2, u1} α n (CommRing.toCommMonoid.{u2} α _inst_5) (Finset.erase.{u1} n (fun (a : n) (b : n) => _inst_1 a b) (Finset.univ.{u1} n _inst_2) i) (fun (j : n) => v j)))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (v : n -> α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.diagonal.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) v)) (Matrix.diagonal.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => Finset.prod.{u2, u1} α n (CommRing.toCommMonoid.{u2} α _inst_5) (Finset.erase.{u1} n (fun (a : n) (b : n) => _inst_1 a b) (Finset.univ.{u1} n _inst_2) i) (fun (j : n) => v j)))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_diagonal Matrix.adjugate_diagonalₓ'. -/
@[simp]
theorem adjugate_diagonal (v : n → α) :
adjugate (diagonal v) = diagonal fun i => ∏ j in Finset.univ.eraseₓ i, v j :=
@@ -488,9 +383,6 @@ theorem adjugate_diagonal (v : n → α) :
· rw [update_column_ne hjk, diagonal_apply_ne' _ hjk]
#align matrix.adjugate_diagonal Matrix.adjugate_diagonal
-/- warning: ring_hom.map_adjugate -> RingHom.map_adjugate is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring_hom.map_adjugate RingHom.map_adjugateₓ'. -/
theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →+* S)
(M : Matrix n n R) : f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
by
@@ -503,21 +395,12 @@ theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →
map_update_row, ← RingHom.mapMatrix_apply, ← RingHom.map_det, ← adjugate_apply]
#align ring_hom.map_adjugate RingHom.map_adjugate
-/- warning: alg_hom.map_adjugate -> AlgHom.map_adjugate is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align alg_hom.map_adjugate AlgHom.map_adjugateₓ'. -/
theorem AlgHom.map_adjugate {R A B : Type _} [CommSemiring R] [CommRing A] [CommRing B]
[Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (M : Matrix n n A) :
f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
f.toRingHom.map_adjugate _
#align alg_hom.map_adjugate AlgHom.map_adjugate
-/- warning: matrix.det_adjugate -> Matrix.det_adjugate is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
-Case conversion may be inaccurate. Consider using '#align matrix.det_adjugate Matrix.det_adjugateₓ'. -/
theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.card n - 1) :=
by
-- get rid of the `- 1`
@@ -539,31 +422,16 @@ theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.c
#align matrix.det_adjugate Matrix.det_adjugate
-/- warning: matrix.adjugate_fin_zero -> Matrix.adjugate_fin_zero is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (b : Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (Zero.zero.{0} Nat Nat.hasZero)) (Fin (Zero.zero.{0} Nat Nat.hasZero)) α) 0 (OfNat.mk.{u1} (Matrix.{0, 0, u1} (Fin (Zero.zero.{0} Nat Nat.hasZero)) (Fin (Zero.zero.{0} Nat Nat.hasZero)) α) 0 (Zero.zero.{u1} (Matrix.{0, 0, u1} (Fin (Zero.zero.{0} Nat Nat.hasZero)) (Fin (Zero.zero.{0} Nat Nat.hasZero)) α) (Matrix.hasZero.{u1, 0, 0} (Fin (Zero.zero.{0} Nat Nat.hasZero)) (Fin (Zero.zero.{0} Nat Nat.hasZero)) α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (CommRing.toRing.{u1} α _inst_5))))))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (b : Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α) 0 (Zero.toOfNat0.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α) (Matrix.zero.{u1, 0, 0} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α (CommMonoidWithZero.toZero.{u1} α (CommSemiring.toCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_5))))))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_fin_zero Matrix.adjugate_fin_zeroₓ'. -/
@[simp]
theorem adjugate_fin_zero (A : Matrix (Fin 0) (Fin 0) α) : adjugate A = 0 :=
Subsingleton.elim _ _
#align matrix.adjugate_fin_zero Matrix.adjugate_fin_zero
-/- warning: matrix.adjugate_fin_one -> Matrix.adjugate_fin_one is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (b : Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (One.one.{0} Nat Nat.hasOne)) (Fin (One.one.{0} Nat Nat.hasOne)) α) 1 (OfNat.mk.{u1} (Matrix.{0, 0, u1} (Fin (One.one.{0} Nat Nat.hasOne)) (Fin (One.one.{0} Nat Nat.hasOne)) α) 1 (One.one.{u1} (Matrix.{0, 0, u1} (Fin (One.one.{0} Nat Nat.hasOne)) (Fin (One.one.{0} Nat Nat.hasOne)) α) (Matrix.hasOne.{u1, 0} (Fin (One.one.{0} Nat Nat.hasOne)) α (fun (a : Fin (One.one.{0} Nat Nat.hasOne)) (b : Fin (One.one.{0} Nat Nat.hasOne)) => Fin.decidableEq (One.one.{0} Nat Nat.hasOne) a b) (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (CommRing.toRing.{u1} α _inst_5)))))) (AddMonoidWithOne.toOne.{u1} α (AddGroupWithOne.toAddMonoidWithOne.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_5)))))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (b : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) 1 (One.toOfNat1.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) (Matrix.one.{u1, 0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (b : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) a b) (CommMonoidWithZero.toZero.{u1} α (CommSemiring.toCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_5))) (Semiring.toOne.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_5))))))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_fin_one Matrix.adjugate_fin_oneₓ'. -/
@[simp]
theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
adjugate_subsingleton A
#align matrix.adjugate_fin_one Matrix.adjugate_fin_one
-/- warning: matrix.adjugate_fin_two -> Matrix.adjugate_fin_two is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_fin_two Matrix.adjugate_fin_twoₓ'. -/
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
adjugate A = !![A 1 1, -A 0 1; -A 1 0, A 0 0] :=
by
@@ -595,12 +463,6 @@ theorem adjugate_conjTranspose [StarRing α] (A : Matrix n n α) : A.adjugateᴴ
#align matrix.adjugate_conj_transpose Matrix.adjugate_conjTranspose
-/
-/- warning: matrix.is_regular_of_is_left_regular_det -> Matrix.isRegular_of_isLeftRegular_det is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (IsLeftRegular.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)) -> (IsRegular.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasMul.{u2, u1} n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) A)
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (IsLeftRegular.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)) -> (IsRegular.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instMulMatrix.{u2, u1} n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) A)
-Case conversion may be inaccurate. Consider using '#align matrix.is_regular_of_is_left_regular_det Matrix.isRegular_of_isLeftRegular_detₓ'. -/
theorem isRegular_of_isLeftRegular_det {A : Matrix n n α} (hA : IsLeftRegular A.det) :
IsRegular A := by
constructor
@@ -615,12 +477,6 @@ theorem isRegular_of_isLeftRegular_det {A : Matrix n n α} (hA : IsLeftRegular A
mul_adjugate, ← Matrix.mul_assoc, ← Matrix.mul_assoc, h]
#align matrix.is_regular_of_is_left_regular_det Matrix.isRegular_of_isLeftRegular_det
-/- warning: matrix.adjugate_mul_distrib_aux -> Matrix.adjugate_mul_distrib_aux is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), (IsLeftRegular.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)) -> (IsLeftRegular.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 B)) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 B) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), (IsLeftRegular.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)) -> (IsLeftRegular.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 B)) -> (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 B) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_mul_distrib_aux Matrix.adjugate_mul_distrib_auxₓ'. -/
theorem adjugate_mul_distrib_aux (A B : Matrix n n α) (hA : IsLeftRegular A.det)
(hB : IsLeftRegular B.det) : adjugate (A ⬝ B) = adjugate B ⬝ adjugate A :=
by
@@ -632,12 +488,6 @@ theorem adjugate_mul_distrib_aux (A B : Matrix n n α) (hA : IsLeftRegular A.det
smul_mul, Matrix.one_mul, mul_smul, mul_adjugate, smul_smul, mul_comm, ← det_mul]
#align matrix.adjugate_mul_distrib_aux Matrix.adjugate_mul_distrib_aux
-/- warning: matrix.adjugate_mul_distrib -> Matrix.adjugate_mul_distrib is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 B) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 B) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_mul_distrib Matrix.adjugate_mul_distribₓ'. -/
/-- Proof follows from "The trace Cayley-Hamilton theorem" by Darij Grinberg, Section 5.3
-/
theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjugate B ⬝ adjugate A :=
@@ -666,12 +516,6 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjuga
RingHom.map_adjugate, f'_inv, f'_g_mul]
#align matrix.adjugate_mul_distrib Matrix.adjugate_mul_distrib
-/- warning: matrix.adjugate_pow -> Matrix.adjugate_pow is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (k : Nat), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_5))))) A k)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) k)
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (k : Nat), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) A k)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) k)
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_pow Matrix.adjugate_powₓ'. -/
@[simp]
theorem adjugate_pow (A : Matrix n n α) (k : ℕ) : adjugate (A ^ k) = adjugate A ^ k :=
by
@@ -680,12 +524,6 @@ theorem adjugate_pow (A : Matrix n n α) (k : ℕ) : adjugate (A ^ k) = adjugate
· rw [pow_succ', mul_eq_mul, adjugate_mul_distrib, IH, ← mul_eq_mul, pow_succ]
#align matrix.adjugate_pow Matrix.adjugate_pow
-/- warning: matrix.det_smul_adjugate_adjugate -> Matrix.det_smul_adjugate_adjugate is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) A)
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) A)
-Case conversion may be inaccurate. Consider using '#align matrix.det_smul_adjugate_adjugate Matrix.det_smul_adjugate_adjugateₓ'. -/
theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
det A • adjugate (adjugate A) = det A ^ (Fintype.card n - 1) • A :=
by
@@ -695,12 +533,6 @@ theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
Matrix.one_mul] at this
#align matrix.det_smul_adjugate_adjugate Matrix.det_smul_adjugate_adjugate
-/- warning: matrix.adjugate_adjugate -> Matrix.adjugate_adjugate is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), (Ne.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) A))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), (Ne.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) -> (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))) A))
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_adjugate Matrix.adjugate_adjugateₓ'. -/
/-- Note that this is not true for `fintype.card n = 1` since `1 - 2 = 0` and not `-1`. -/
theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
adjugate (adjugate A) = det A ^ (Fintype.card n - 2) • A :=
@@ -726,12 +558,6 @@ theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
rw [smul_smul, ← pow_succ, h_card', det_smul_adjugate_adjugate]
#align matrix.adjugate_adjugate Matrix.adjugate_adjugate
-/- warning: matrix.adjugate_adjugate' -> Matrix.adjugate_adjugate' is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) [_inst_6 : Nontrivial.{u1} n], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) A)
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))) A)
-Case conversion may be inaccurate. Consider using '#align matrix.adjugate_adjugate' Matrix.adjugate_adjugate'ₓ'. -/
/-- A weaker version of `matrix.adjugate_adjugate` that uses `nontrivial`. -/
theorem adjugate_adjugate' (A : Matrix n n α) [Nontrivial n] :
adjugate (adjugate A) = det A ^ (Fintype.card n - 2) • A :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -166,8 +166,7 @@ theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
ext (i j)
convert congr_fun (cramer_row_self (1 : Matrix n n α) (Pi.single i 1) i _) j
· simp
- · intro j
- rw [Matrix.one_eq_pi_single, Pi.single_comm]
+ · intro j; rw [Matrix.one_eq_pi_single, Pi.single_comm]
#align matrix.cramer_one Matrix.cramer_one
/- warning: matrix.cramer_smul -> Matrix.cramer_smul is a dubious translation:
@@ -219,10 +218,7 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
calc
(∑ x in s, cramer A (fun j => f j x) i) = (∑ x in s, cramer A fun j => f j x) i :=
(Finset.sum_apply i s _).symm
- _ = cramer A (fun j : n => ∑ x in s, f j x) i :=
- by
- rw [sum_cramer, cramer_apply]
- congr with j
+ _ = cramer A (fun j : n => ∑ x in s, f j x) i := by rw [sum_cramer, cramer_apply]; congr with j;
apply Finset.sum_apply
#align matrix.sum_cramer_apply Matrix.sum_cramer_apply
@@ -352,13 +348,9 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
by
nth_rw 2 [← A.transpose_transpose]
rw [← adjugate_transpose, adjugate_def]
- have : b = ∑ i, b i • Pi.single i 1 :=
- by
- refine' (pi_eq_sum_univ b).trans _
- congr with j
+ have : b = ∑ i, b i • Pi.single i 1 := by refine' (pi_eq_sum_univ b).trans _; congr with j;
simp [Pi.single_apply, eq_comm]
- nth_rw 1 [this]
- ext k
+ nth_rw 1 [this]; ext k
simp [mul_vec, dot_product, mul_comm]
#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVec
@@ -469,9 +461,7 @@ but is expected to have type
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_one Matrix.adjugate_oneₓ'. -/
@[simp]
-theorem adjugate_one : adjugate (1 : Matrix n n α) = 1 :=
- by
- ext
+theorem adjugate_one : adjugate (1 : Matrix n n α) = 1 := by ext;
simp [adjugate_def, Matrix.one_apply, Pi.single_apply, eq_comm]
#align matrix.adjugate_one Matrix.adjugate_one
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -124,20 +124,14 @@ theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
#align matrix.cramer_apply Matrix.cramer_apply
/- warning: matrix.cramer_transpose_apply -> Matrix.cramer_transpose_apply is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_apply Matrix.cramer_transpose_applyₓ'. -/
theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det := by
rw [cramer_apply, update_column_transpose, det_transpose]
#align matrix.cramer_transpose_apply Matrix.cramer_transpose_apply
/- warning: matrix.cramer_transpose_row_self -> Matrix.cramer_transpose_row_self is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_selfₓ'. -/
theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.det :=
by
@@ -154,10 +148,7 @@ theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.de
#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_self
/- warning: matrix.cramer_row_self -> Matrix.cramer_row_self is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.cramer_row_self Matrix.cramer_row_selfₓ'. -/
theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.single i A.det :=
by
@@ -167,10 +158,7 @@ theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.singl
#align matrix.cramer_row_self Matrix.cramer_row_self
/- warning: matrix.cramer_one -> Matrix.cramer_one is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (OfNat.mk.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (One.one.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.module.End.hasOne.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 1 (One.toOfNat1.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instOneEnd.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.cramer_one Matrix.cramer_oneₓ'. -/
@[simp]
theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
@@ -183,10 +171,7 @@ theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
#align matrix.cramer_one Matrix.cramer_one
/- warning: matrix.cramer_smul -> Matrix.cramer_smul is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) r A)) (SMul.smul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.hasSmul.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Module.toDistribMulAction.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Function.smulCommClass.{u1, u2, u2, u2} n α α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (Monoid.toMulAction.{u2} α (CommMonoid.toMonoid.{u2} α (CommRing.toCommMonoid.{u2} α _inst_5)))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (instHSMul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (ᾰ : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instSMulLinearMap.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.distribMulAction.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.278 : n) => α) α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (fun (i : n) => (fun (i : n) => AddCommMonoid.toAddMonoid.{u2} ((fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) i) ((fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) i)) i) (fun (i : n) => Module.toDistribMulAction.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Pi.smulCommClass.{u1, u2, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.278 : n) => α) α α (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (MulActionWithZero.toMulAction.{u2, u2} α α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (MonoidWithZero.toMulActionWithZero.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.cramer_smul Matrix.cramer_smulₓ'. -/
theorem cramer_smul (r : α) (A : Matrix n n α) :
cramer (r • A) = r ^ (Fintype.card n - 1) • cramer A :=
@@ -205,10 +190,7 @@ theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n
#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_apply
/- warning: matrix.cramer_zero -> Matrix.cramer_zero is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.zero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasZero.{u2, u1, u1} n n α (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (OfNat.mk.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (Zero.zero.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.hasZero.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 0 (Zero.toOfNat0.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instZeroLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.cramer_zero Matrix.cramer_zeroₓ'. -/
theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
by
@@ -220,10 +202,7 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
#align matrix.cramer_zero Matrix.cramer_zero
/- warning: matrix.sum_cramer -> Matrix.sum_cramer is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : β -> n -> α), Eq.{succ (max u1 u2)} (n -> α) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => f x)))
-but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer Matrix.sum_cramerₓ'. -/
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
@@ -232,10 +211,7 @@ theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
#align matrix.sum_cramer Matrix.sum_cramer
/- warning: matrix.sum_cramer_apply -> Matrix.sum_cramer_apply is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : n -> β -> α) (i : n), Eq.{succ u2} α (Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => f j x)) i)
-but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer_apply Matrix.sum_cramer_applyₓ'. -/
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
@@ -252,10 +228,7 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
#align matrix.sum_cramer_apply Matrix.sum_cramer_apply
/- warning: matrix.cramer_submatrix_equiv -> Matrix.cramer_submatrix_equiv is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α 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))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) (Equiv.symm.{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))
-but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equivₓ'. -/
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
@@ -266,10 +239,7 @@ theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α)
#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equiv
/- warning: matrix.cramer_reindex -> Matrix.cramer_reindex is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (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 α) (Matrix.{u2, u2, u3} n n α)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) => (Matrix.{u1, u1, u3} m m α) -> (Matrix.{u2, u2, u3} n n α)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) 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) (Equiv.symm.{succ u1, succ u2} m n e)))
-but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.cramer_reindex Matrix.cramer_reindexₓ'. -/
theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
@@ -373,10 +343,7 @@ theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
-/
/- warning: matrix.cramer_eq_adjugate_mul_vec -> Matrix.cramer_eq_adjugate_mulVec is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVecₓ'. -/
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
@@ -396,10 +363,7 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVec
/- warning: matrix.mul_adjugate_apply -> Matrix.mul_adjugate_apply is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) k (A i k)) j)
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate_apply Matrix.mul_adjugate_applyₓ'. -/
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
A i k * adjugate A k j = cramer Aᵀ (Pi.single k (A i k)) j := by
@@ -448,10 +412,7 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
#align matrix.adjugate_smul Matrix.adjugate_smul
/- warning: matrix.mul_vec_cramer -> Matrix.mulVec_cramer is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (SMul.smul.{u2, max u1 u2} α (n -> α) (Function.hasSMul.{u1, u2, u2} n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
-but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3226 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.mul_vec_cramer Matrix.mulVec_cramerₓ'. -/
/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
@@ -538,10 +499,7 @@ theorem adjugate_diagonal (v : n → α) :
#align matrix.adjugate_diagonal Matrix.adjugate_diagonal
/- warning: ring_hom.map_adjugate -> RingHom.map_adjugate is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {R : Type.{u2}} {S : Type.{u3}} [_inst_6 : CommRing.{u2} R] [_inst_7 : CommRing.{u3} S] (f : RingHom.{u2, u3} R S (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7)))) (M : Matrix.{u1, u1, u2} n n R), Eq.{succ (max u1 u3)} (Matrix.{u1, u1, u3} n n S) (coeFn.{max (succ (max u1 u2)) (succ (max u1 u3)), max (succ (max u1 u2)) (succ (max u1 u3))} (RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) => (Matrix.{u1, u1, u2} n n R) -> (Matrix.{u1, u1, u3} n n S)) (RingHom.hasCoeToFun.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHom.mapMatrix.{u2, u3, u1} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) f) (Matrix.adjugate.{u1, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (Matrix.adjugate.{u1, u3} n S (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 (coeFn.{max (succ (max u1 u2)) (succ (max u1 u3)), max (succ (max u1 u2)) (succ (max u1 u3))} (RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) => (Matrix.{u1, u1, u2} n n R) -> (Matrix.{u1, u1, u3} n n S)) (RingHom.hasCoeToFun.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHom.mapMatrix.{u2, u3, u1} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) f) M))
-but is expected to have type
- forall {n : Type.{u3}} [_inst_1 : DecidableEq.{succ u3} n] [_inst_2 : Fintype.{u3} n] {R : Type.{u2}} {S : Type.{u1}} [_inst_6 : CommRing.{u2} R] [_inst_7 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7)))) (M : Matrix.{u3, u3, u2} n n R), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) f) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (Matrix.adjugate.{u3, u1} n S (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) f) M))
+<too large>
Case conversion may be inaccurate. Consider using '#align ring_hom.map_adjugate RingHom.map_adjugateₓ'. -/
theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →+* S)
(M : Matrix n n R) : f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
@@ -556,10 +514,7 @@ theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →
#align ring_hom.map_adjugate RingHom.map_adjugate
/- warning: alg_hom.map_adjugate -> AlgHom.map_adjugate is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u4}} [_inst_6 : CommSemiring.{u2} R] [_inst_7 : CommRing.{u3} A] [_inst_8 : CommRing.{u4} B] [_inst_9 : Algebra.{u2, u3} R A _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7))] [_inst_10 : Algebra.{u2, u4} R B _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8))] (f : AlgHom.{u2, u3, u4} R A B _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10) (M : Matrix.{u1, u1, u3} n n A), Eq.{succ (max u1 u4)} (Matrix.{u1, u1, u4} n n B) (coeFn.{max (succ (max u1 u3)) (succ (max u1 u4)), max (succ (max u1 u3)) (succ (max u1 u4))} (AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (fun (_x : AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) => (Matrix.{u1, u1, u3} n n A) -> (Matrix.{u1, u1, u4} n n B)) ([anonymous].{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (AlgHom.mapMatrix.{u3, u4, u1, u2} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10 f) (Matrix.adjugate.{u1, u3} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (Matrix.adjugate.{u1, u4} n B (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_8 (coeFn.{max (succ (max u1 u3)) (succ (max u1 u4)), max (succ (max u1 u3)) (succ (max u1 u4))} (AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (fun (_x : AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) => (Matrix.{u1, u1, u3} n n A) -> (Matrix.{u1, u1, u4} n n B)) ([anonymous].{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (AlgHom.mapMatrix.{u3, u4, u1, u2} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10 f) M))
-but is expected to have type
- forall {n : Type.{u4}} [_inst_1 : DecidableEq.{succ u4} n] [_inst_2 : Fintype.{u4} n] {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_6 : CommSemiring.{u3} R] [_inst_7 : CommRing.{u2} A] [_inst_8 : CommRing.{u1} B] [_inst_9 : Algebra.{u3, u2} R A _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7))] [_inst_10 : Algebra.{u3, u1} R B _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8))] (f : AlgHom.{u3, u2, u1} R A B _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10) (M : Matrix.{u4, u4, u2} n n A), Eq.{max (succ u4) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10 f) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (Matrix.adjugate.{u4, u1} n B (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_8 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10 f) M))
+<too large>
Case conversion may be inaccurate. Consider using '#align alg_hom.map_adjugate AlgHom.map_adjugateₓ'. -/
theorem AlgHom.map_adjugate {R A B : Type _} [CommSemiring R] [CommRing A] [CommRing B]
[Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (M : Matrix n n A) :
@@ -617,10 +572,7 @@ theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
#align matrix.adjugate_fin_one Matrix.adjugate_fin_one
/- warning: matrix.adjugate_fin_two -> Matrix.adjugate_fin_two is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (b : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) _inst_5 A) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) (fun (_x : Equiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) => ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) -> (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) (Equiv.hasCoeToFun.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) (Matrix.of.{u1, 0, 0} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring))))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_5)))))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_5)))))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring))))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecEmpty.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α)))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (b : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) _inst_5 A) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α)) ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (fun (_x : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) => Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α)) (Matrix.of.{u1, 0, 0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Neg.neg.{u1} α (Ring.toNeg.{u1} α (CommRing.toRing.{u1} α _inst_5)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Neg.neg.{u1} α (Ring.toNeg.{u1} α (CommRing.toRing.{u1} α _inst_5)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecEmpty.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_fin_two Matrix.adjugate_fin_twoₓ'. -/
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
adjugate A = !![A 1 1, -A 0 1; -A 1 0, A 0 0] :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -117,7 +117,7 @@ def cramer (A : Matrix n n α) : (n → α) →ₗ[α] n → α :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_apply Matrix.cramer_applyₓ'. -/
theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
rfl
@@ -127,7 +127,7 @@ theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_apply Matrix.cramer_transpose_applyₓ'. -/
theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det := by
rw [cramer_apply, update_column_transpose, det_transpose]
@@ -137,7 +137,7 @@ theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_selfₓ'. -/
theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.det :=
by
@@ -157,7 +157,7 @@ theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.de
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_row_self Matrix.cramer_row_selfₓ'. -/
theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.single i A.det :=
by
@@ -197,7 +197,7 @@ theorem cramer_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
Case conversion may be inaccurate. Consider using '#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_applyₓ'. -/
@[simp]
theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n → α) (i : n) :
@@ -223,7 +223,7 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : β -> n -> α), Eq.{succ (max u1 u2)} (n -> α) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => f x)))
but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer Matrix.sum_cramerₓ'. -/
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
@@ -235,7 +235,7 @@ theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : n -> β -> α) (i : n), Eq.{succ u2} α (Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => f j x)) i)
but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer_apply Matrix.sum_cramer_applyₓ'. -/
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
@@ -255,7 +255,7 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α 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))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) (Equiv.symm.{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))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equivₓ'. -/
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
@@ -269,7 +269,7 @@ theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α)
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (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 α) (Matrix.{u2, u2, u3} n n α)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) => (Matrix.{u1, u1, u3} m m α) -> (Matrix.{u2, u2, u3} n n α)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) 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) (Equiv.symm.{succ u1, succ u2} m n e)))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_reindex Matrix.cramer_reindexₓ'. -/
theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
@@ -376,7 +376,7 @@ theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVecₓ'. -/
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
@@ -399,7 +399,7 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) k (A i k)) j)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate_apply Matrix.mul_adjugate_applyₓ'. -/
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
A i k * adjugate A k j = cramer Aᵀ (Pi.single k (A i k)) j := by
@@ -451,7 +451,7 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (SMul.smul.{u2, max u1 u2} α (n -> α) (Function.hasSMul.{u1, u2, u2} n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3226 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3226 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.mul_vec_cramer Matrix.mulVec_cramerₓ'. -/
/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
@@ -559,7 +559,7 @@ theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →
lean 3 declaration is
forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u4}} [_inst_6 : CommSemiring.{u2} R] [_inst_7 : CommRing.{u3} A] [_inst_8 : CommRing.{u4} B] [_inst_9 : Algebra.{u2, u3} R A _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7))] [_inst_10 : Algebra.{u2, u4} R B _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8))] (f : AlgHom.{u2, u3, u4} R A B _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10) (M : Matrix.{u1, u1, u3} n n A), Eq.{succ (max u1 u4)} (Matrix.{u1, u1, u4} n n B) (coeFn.{max (succ (max u1 u3)) (succ (max u1 u4)), max (succ (max u1 u3)) (succ (max u1 u4))} (AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (fun (_x : AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) => (Matrix.{u1, u1, u3} n n A) -> (Matrix.{u1, u1, u4} n n B)) ([anonymous].{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (AlgHom.mapMatrix.{u3, u4, u1, u2} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10 f) (Matrix.adjugate.{u1, u3} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (Matrix.adjugate.{u1, u4} n B (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_8 (coeFn.{max (succ (max u1 u3)) (succ (max u1 u4)), max (succ (max u1 u3)) (succ (max u1 u4))} (AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (fun (_x : AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) => (Matrix.{u1, u1, u3} n n A) -> (Matrix.{u1, u1, u4} n n B)) ([anonymous].{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (AlgHom.mapMatrix.{u3, u4, u1, u2} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10 f) M))
but is expected to have type
- forall {n : Type.{u4}} [_inst_1 : DecidableEq.{succ u4} n] [_inst_2 : Fintype.{u4} n] {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_6 : CommSemiring.{u3} R] [_inst_7 : CommRing.{u2} A] [_inst_8 : CommRing.{u1} B] [_inst_9 : Algebra.{u3, u2} R A _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7))] [_inst_10 : Algebra.{u3, u1} R B _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8))] (f : AlgHom.{u3, u2, u1} R A B _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10) (M : Matrix.{u4, u4, u2} n n A), Eq.{max (succ u4) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10 f) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (Matrix.adjugate.{u4, u1} n B (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_8 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10 f) M))
+ forall {n : Type.{u4}} [_inst_1 : DecidableEq.{succ u4} n] [_inst_2 : Fintype.{u4} n] {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_6 : CommSemiring.{u3} R] [_inst_7 : CommRing.{u2} A] [_inst_8 : CommRing.{u1} B] [_inst_9 : Algebra.{u3, u2} R A _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7))] [_inst_10 : Algebra.{u3, u1} R B _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8))] (f : AlgHom.{u3, u2, u1} R A B _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10) (M : Matrix.{u4, u4, u2} n n A), Eq.{max (succ u4) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10 f) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (Matrix.adjugate.{u4, u1} n B (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_8 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10 f) M))
Case conversion may be inaccurate. Consider using '#align alg_hom.map_adjugate AlgHom.map_adjugateₓ'. -/
theorem AlgHom.map_adjugate {R A B : Type _} [CommSemiring R] [CommRing A] [CommRing B]
[Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (M : Matrix n n A) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -255,7 +255,7 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α 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))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) (Equiv.symm.{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))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equivₓ'. -/
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
@@ -269,7 +269,7 @@ theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α)
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (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 α) (Matrix.{u2, u2, u3} n n α)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) => (Matrix.{u1, u1, u3} m m α) -> (Matrix.{u2, u2, u3} n n α)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) 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) (Equiv.symm.{succ u1, succ u2} m n e)))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_reindex Matrix.cramer_reindexₓ'. -/
theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
@@ -541,7 +541,7 @@ theorem adjugate_diagonal (v : n → α) :
lean 3 declaration is
forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {R : Type.{u2}} {S : Type.{u3}} [_inst_6 : CommRing.{u2} R] [_inst_7 : CommRing.{u3} S] (f : RingHom.{u2, u3} R S (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7)))) (M : Matrix.{u1, u1, u2} n n R), Eq.{succ (max u1 u3)} (Matrix.{u1, u1, u3} n n S) (coeFn.{max (succ (max u1 u2)) (succ (max u1 u3)), max (succ (max u1 u2)) (succ (max u1 u3))} (RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) => (Matrix.{u1, u1, u2} n n R) -> (Matrix.{u1, u1, u3} n n S)) (RingHom.hasCoeToFun.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHom.mapMatrix.{u2, u3, u1} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) f) (Matrix.adjugate.{u1, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (Matrix.adjugate.{u1, u3} n S (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 (coeFn.{max (succ (max u1 u2)) (succ (max u1 u3)), max (succ (max u1 u2)) (succ (max u1 u3))} (RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) => (Matrix.{u1, u1, u2} n n R) -> (Matrix.{u1, u1, u3} n n S)) (RingHom.hasCoeToFun.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHom.mapMatrix.{u2, u3, u1} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) f) M))
but is expected to have type
- forall {n : Type.{u3}} [_inst_1 : DecidableEq.{succ u3} n] [_inst_2 : Fintype.{u3} n] {R : Type.{u2}} {S : Type.{u1}} [_inst_6 : CommRing.{u2} R] [_inst_7 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7)))) (M : Matrix.{u3, u3, u2} n n R), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) f) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (Matrix.adjugate.{u3, u1} n S (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) f) M))
+ forall {n : Type.{u3}} [_inst_1 : DecidableEq.{succ u3} n] [_inst_2 : Fintype.{u3} n] {R : Type.{u2}} {S : Type.{u1}} [_inst_6 : CommRing.{u2} R] [_inst_7 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7)))) (M : Matrix.{u3, u3, u2} n n R), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) f) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (Matrix.adjugate.{u3, u1} n S (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) f) M))
Case conversion may be inaccurate. Consider using '#align ring_hom.map_adjugate RingHom.map_adjugateₓ'. -/
theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →+* S)
(M : Matrix n n R) : f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
@@ -620,7 +620,7 @@ theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
lean 3 declaration is
forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (b : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) _inst_5 A) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) (fun (_x : Equiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) => ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) -> (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) (Equiv.hasCoeToFun.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) (Matrix.of.{u1, 0, 0} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring))))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_5)))))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_5)))))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring))))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecEmpty.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α)))))
but is expected to have type
- forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (b : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) _inst_5 A) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α)) ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (fun (_x : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) => Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α)) (Matrix.of.{u1, 0, 0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Neg.neg.{u1} α (Ring.toNeg.{u1} α (CommRing.toRing.{u1} α _inst_5)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Neg.neg.{u1} α (Ring.toNeg.{u1} α (CommRing.toRing.{u1} α _inst_5)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecEmpty.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α)))))
+ forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (b : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) _inst_5 A) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α)) ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (fun (_x : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) => Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α)) (Matrix.of.{u1, 0, 0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Neg.neg.{u1} α (Ring.toNeg.{u1} α (CommRing.toRing.{u1} α _inst_5)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Neg.neg.{u1} α (Ring.toNeg.{u1} α (CommRing.toRing.{u1} α _inst_5)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecEmpty.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α)))))
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_fin_two Matrix.adjugate_fin_twoₓ'. -/
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
adjugate A = !![A 1 1, -A 0 1; -A 1 0, A 0 0] :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -117,7 +117,7 @@ def cramer (A : Matrix n n α) : (n → α) →ₗ[α] n → α :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_apply Matrix.cramer_applyₓ'. -/
theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
rfl
@@ -127,7 +127,7 @@ theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_apply Matrix.cramer_transpose_applyₓ'. -/
theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det := by
rw [cramer_apply, update_column_transpose, det_transpose]
@@ -137,7 +137,7 @@ theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_selfₓ'. -/
theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.det :=
by
@@ -157,7 +157,7 @@ theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.de
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_row_self Matrix.cramer_row_selfₓ'. -/
theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.single i A.det :=
by
@@ -197,7 +197,7 @@ theorem cramer_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
Case conversion may be inaccurate. Consider using '#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_applyₓ'. -/
@[simp]
theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n → α) (i : n) :
@@ -223,7 +223,7 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : β -> n -> α), Eq.{succ (max u1 u2)} (n -> α) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => f x)))
but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer Matrix.sum_cramerₓ'. -/
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
@@ -235,7 +235,7 @@ theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : n -> β -> α) (i : n), Eq.{succ u2} α (Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => f j x)) i)
but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer_apply Matrix.sum_cramer_applyₓ'. -/
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
@@ -255,7 +255,7 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α 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))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) (Equiv.symm.{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))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equivₓ'. -/
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
@@ -269,7 +269,7 @@ theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α)
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (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 α) (Matrix.{u2, u2, u3} n n α)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) => (Matrix.{u1, u1, u3} m m α) -> (Matrix.{u2, u2, u3} n n α)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) 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) (Equiv.symm.{succ u1, succ u2} m n e)))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_reindex Matrix.cramer_reindexₓ'. -/
theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
@@ -376,7 +376,7 @@ theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVecₓ'. -/
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
@@ -399,7 +399,7 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) k (A i k)) j)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate_apply Matrix.mul_adjugate_applyₓ'. -/
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
A i k * adjugate A k j = cramer Aᵀ (Pi.single k (A i k)) j := by
@@ -451,7 +451,7 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (SMul.smul.{u2, max u1 u2} α (n -> α) (Function.hasSMul.{u1, u2, u2} n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3226 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3226 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.mul_vec_cramer Matrix.mulVec_cramerₓ'. -/
/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -117,7 +117,7 @@ def cramer (A : Matrix n n α) : (n → α) →ₗ[α] n → α :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_apply Matrix.cramer_applyₓ'. -/
theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
rfl
@@ -127,7 +127,7 @@ theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_apply Matrix.cramer_transpose_applyₓ'. -/
theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det := by
rw [cramer_apply, update_column_transpose, det_transpose]
@@ -137,7 +137,7 @@ theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_selfₓ'. -/
theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.det :=
by
@@ -157,7 +157,7 @@ theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.de
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_row_self Matrix.cramer_row_selfₓ'. -/
theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.single i A.det :=
by
@@ -170,7 +170,7 @@ theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.singl
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (OfNat.mk.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (One.one.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.module.End.hasOne.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 1 (One.toOfNat1.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instOneEnd.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 1 (One.toOfNat1.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instOneEnd.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_one Matrix.cramer_oneₓ'. -/
@[simp]
theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
@@ -186,7 +186,7 @@ theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) r A)) (SMul.smul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.hasSmul.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Module.toDistribMulAction.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Function.smulCommClass.{u1, u2, u2, u2} n α α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (Monoid.toMulAction.{u2} α (CommMonoid.toMonoid.{u2} α (CommRing.toCommMonoid.{u2} α _inst_5)))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (instHSMul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (ᾰ : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instSMulLinearMap.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.distribMulAction.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (fun (i : n) => AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (fun (i : n) => Module.toDistribMulAction.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Pi.smulCommClass.{u1, u2, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α α (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (MulActionWithZero.toMulAction.{u2, u2} α α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (MonoidWithZero.toMulActionWithZero.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (instHSMul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (ᾰ : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instSMulLinearMap.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.distribMulAction.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.278 : n) => α) α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (fun (i : n) => (fun (i : n) => AddCommMonoid.toAddMonoid.{u2} ((fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) i) ((fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) i)) i) (fun (i : n) => Module.toDistribMulAction.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Pi.smulCommClass.{u1, u2, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.278 : n) => α) α α (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (MulActionWithZero.toMulAction.{u2, u2} α α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (MonoidWithZero.toMulActionWithZero.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_smul Matrix.cramer_smulₓ'. -/
theorem cramer_smul (r : α) (A : Matrix n n α) :
cramer (r • A) = r ^ (Fintype.card n - 1) • cramer A :=
@@ -197,7 +197,7 @@ theorem cramer_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
Case conversion may be inaccurate. Consider using '#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_applyₓ'. -/
@[simp]
theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n → α) (i : n) :
@@ -208,7 +208,7 @@ theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.zero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasZero.{u2, u1, u1} n n α (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (OfNat.mk.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (Zero.zero.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.hasZero.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 0 (Zero.toOfNat0.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instZeroLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 0 (Zero.toOfNat0.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instZeroLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_zero Matrix.cramer_zeroₓ'. -/
theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
by
@@ -223,7 +223,7 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : β -> n -> α), Eq.{succ (max u1 u2)} (n -> α) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => f x)))
but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer Matrix.sum_cramerₓ'. -/
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
@@ -235,7 +235,7 @@ theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : n -> β -> α) (i : n), Eq.{succ u2} α (Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => f j x)) i)
but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer_apply Matrix.sum_cramer_applyₓ'. -/
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
@@ -255,7 +255,7 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α 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))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) (Equiv.symm.{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))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equivₓ'. -/
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
@@ -269,7 +269,7 @@ theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α)
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (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 α) (Matrix.{u2, u2, u3} n n α)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) => (Matrix.{u1, u1, u3} m m α) -> (Matrix.{u2, u2, u3} n n α)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) 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) (Equiv.symm.{succ u1, succ u2} m n e)))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_reindex Matrix.cramer_reindexₓ'. -/
theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
@@ -376,7 +376,7 @@ theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVecₓ'. -/
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
@@ -399,7 +399,7 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) k (A i k)) j)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate_apply Matrix.mul_adjugate_applyₓ'. -/
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
A i k * adjugate A k j = cramer Aᵀ (Pi.single k (A i k)) j := by
@@ -451,7 +451,7 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (SMul.smul.{u2, max u1 u2} α (n -> α) (Function.hasSMul.{u1, u2, u2} n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3227 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3226 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.mul_vec_cramer Matrix.mulVec_cramerₓ'. -/
/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -117,7 +117,7 @@ def cramer (A : Matrix n n α) : (n → α) →ₗ[α] n → α :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_apply Matrix.cramer_applyₓ'. -/
theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
rfl
@@ -127,7 +127,7 @@ theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_apply Matrix.cramer_transpose_applyₓ'. -/
theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det := by
rw [cramer_apply, update_column_transpose, det_transpose]
@@ -137,7 +137,7 @@ theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_selfₓ'. -/
theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.det :=
by
@@ -157,7 +157,7 @@ theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.de
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_row_self Matrix.cramer_row_selfₓ'. -/
theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.single i A.det :=
by
@@ -170,7 +170,7 @@ theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.singl
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (OfNat.mk.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (One.one.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.module.End.hasOne.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (One.toOfNat1.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.instOneEnd.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 1 (One.toOfNat1.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instOneEnd.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_one Matrix.cramer_oneₓ'. -/
@[simp]
theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
@@ -186,7 +186,7 @@ theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) r A)) (SMul.smul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.hasSmul.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Module.toDistribMulAction.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Function.smulCommClass.{u1, u2, u2, u2} n α α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (Monoid.toMulAction.{u2} α (CommMonoid.toMonoid.{u2} α (CommRing.toCommMonoid.{u2} α _inst_5)))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (instHSMul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (ᾰ : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.instSMulLinearMap.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.distribMulAction.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (fun (i : n) => AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (fun (i : n) => Module.toDistribMulAction.{u2, u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Pi.smulCommClass.{u1, u2, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α α (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (MulActionWithZero.toMulAction.{u2, u2} α α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (MonoidWithZero.toMulActionWithZero.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (instHSMul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (ᾰ : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instSMulLinearMap.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.distribMulAction.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (fun (i : n) => AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (fun (i : n) => Module.toDistribMulAction.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Pi.smulCommClass.{u1, u2, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α α (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (MulActionWithZero.toMulAction.{u2, u2} α α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (MonoidWithZero.toMulActionWithZero.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_smul Matrix.cramer_smulₓ'. -/
theorem cramer_smul (r : α) (A : Matrix n n α) :
cramer (r • A) = r ^ (Fintype.card n - 1) • cramer A :=
@@ -197,7 +197,7 @@ theorem cramer_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
Case conversion may be inaccurate. Consider using '#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_applyₓ'. -/
@[simp]
theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n → α) (i : n) :
@@ -208,7 +208,7 @@ theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.zero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasZero.{u2, u1, u1} n n α (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (OfNat.mk.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (Zero.zero.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.hasZero.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (Zero.toOfNat0.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.instZeroLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 0 (Zero.toOfNat0.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instZeroLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_zero Matrix.cramer_zeroₓ'. -/
theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
by
@@ -223,7 +223,7 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : β -> n -> α), Eq.{succ (max u1 u2)} (n -> α) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => f x)))
but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer Matrix.sum_cramerₓ'. -/
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
@@ -235,7 +235,7 @@ theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : n -> β -> α) (i : n), Eq.{succ u2} α (Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => f j x)) i)
but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer_apply Matrix.sum_cramer_applyₓ'. -/
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
@@ -255,7 +255,7 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α 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))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) (Equiv.symm.{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))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equivₓ'. -/
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
@@ -269,7 +269,7 @@ theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α)
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (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 α) (Matrix.{u2, u2, u3} n n α)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) => (Matrix.{u1, u1, u3} m m α) -> (Matrix.{u2, u2, u3} n n α)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) 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) (Equiv.symm.{succ u1, succ u2} m n e)))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (CommSemiring.toSemiring.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_reindex Matrix.cramer_reindexₓ'. -/
theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
@@ -312,7 +312,7 @@ theorem adjugate_def (A : Matrix n n α) : adjugate A = of fun i => cramer Aᵀ
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n), Eq.{succ u2} α (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A i j) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A j (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (OfNat.ofNat.{u2} α 1 (OfNat.mk.{u2} α 1 (One.one.{u2} α (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n), Eq.{succ u2} α (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A i j) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A j (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (OfNat.ofNat.{u2} α 1 (One.toOfNat1.{u2} α (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n), Eq.{succ u2} α (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A i j) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A j (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (OfNat.ofNat.{u2} α 1 (One.toOfNat1.{u2} α (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))))
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_apply Matrix.adjugate_applyₓ'. -/
theorem adjugate_apply (A : Matrix n n α) (i j : n) :
adjugate A i j = (A.updateRow j (Pi.single i 1)).det := by
@@ -376,7 +376,7 @@ theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVecₓ'. -/
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
@@ -399,7 +399,7 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) k (A i k)) j)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate_apply Matrix.mul_adjugate_applyₓ'. -/
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
A i k * adjugate A k j = cramer Aᵀ (Pi.single k (A i k)) j := by
@@ -411,7 +411,7 @@ theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate Matrix.mul_adjugateₓ'. -/
theorem mul_adjugate (A : Matrix n n α) : A ⬝ adjugate A = A.det • 1 :=
by
@@ -424,7 +424,7 @@ theorem mul_adjugate (A : Matrix n n α) : A ⬝ adjugate A = A.det • 1 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) A) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) A) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) A) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_mul Matrix.adjugate_mulₓ'. -/
theorem adjugate_mul (A : Matrix n n α) : adjugate A ⬝ A = A.det • 1 :=
calc
@@ -438,7 +438,7 @@ theorem adjugate_mul (A : Matrix n n α) : adjugate A ⬝ A = A.det • 1 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) r A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_smul Matrix.adjugate_smulₓ'. -/
theorem adjugate_smul (r : α) (A : Matrix n n α) :
adjugate (r • A) = r ^ (Fintype.card n - 1) • adjugate A :=
@@ -451,7 +451,7 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (SMul.smul.{u2, max u1 u2} α (n -> α) (Function.hasSMul.{u1, u2, u2} n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3227 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3227 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.mul_vec_cramer Matrix.mulVec_cramerₓ'. -/
/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
@@ -465,7 +465,7 @@ theorem mulVec_cramer (A : Matrix n n α) (b : n → α) : A.mulVec (cramer A b)
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_subsingleton Matrix.adjugate_subsingletonₓ'. -/
theorem adjugate_subsingleton [Subsingleton n] (A : Matrix n n α) : adjugate A = 1 :=
by
@@ -477,7 +477,7 @@ theorem adjugate_subsingleton [Subsingleton n] (A : Matrix n n α) : adjugate A
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (Eq.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (Eq.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) -> (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (Eq.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) -> (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_eq_one_of_card_eq_one Matrix.adjugate_eq_one_of_card_eq_oneₓ'. -/
theorem adjugate_eq_one_of_card_eq_one {A : Matrix n n α} (h : Fintype.card n = 1) :
adjugate A = 1 :=
@@ -505,7 +505,7 @@ theorem adjugate_zero [Nontrivial n] : adjugate (0 : Matrix n n α) = 0 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_one Matrix.adjugate_oneₓ'. -/
@[simp]
theorem adjugate_one : adjugate (1 : Matrix n n α) = 1 :=
@@ -541,7 +541,7 @@ theorem adjugate_diagonal (v : n → α) :
lean 3 declaration is
forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {R : Type.{u2}} {S : Type.{u3}} [_inst_6 : CommRing.{u2} R] [_inst_7 : CommRing.{u3} S] (f : RingHom.{u2, u3} R S (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7)))) (M : Matrix.{u1, u1, u2} n n R), Eq.{succ (max u1 u3)} (Matrix.{u1, u1, u3} n n S) (coeFn.{max (succ (max u1 u2)) (succ (max u1 u3)), max (succ (max u1 u2)) (succ (max u1 u3))} (RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) => (Matrix.{u1, u1, u2} n n R) -> (Matrix.{u1, u1, u3} n n S)) (RingHom.hasCoeToFun.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHom.mapMatrix.{u2, u3, u1} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) f) (Matrix.adjugate.{u1, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (Matrix.adjugate.{u1, u3} n S (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 (coeFn.{max (succ (max u1 u2)) (succ (max u1 u3)), max (succ (max u1 u2)) (succ (max u1 u3))} (RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) => (Matrix.{u1, u1, u2} n n R) -> (Matrix.{u1, u1, u3} n n S)) (RingHom.hasCoeToFun.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHom.mapMatrix.{u2, u3, u1} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) f) M))
but is expected to have type
- forall {n : Type.{u3}} [_inst_1 : DecidableEq.{succ u3} n] [_inst_2 : Fintype.{u3} n] {R : Type.{u2}} {S : Type.{u1}} [_inst_6 : CommRing.{u2} R] [_inst_7 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7)))) (M : Matrix.{u3, u3, u2} n n R), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) f) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (Matrix.adjugate.{u3, u1} n S (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) f) M))
+ forall {n : Type.{u3}} [_inst_1 : DecidableEq.{succ u3} n] [_inst_2 : Fintype.{u3} n] {R : Type.{u2}} {S : Type.{u1}} [_inst_6 : CommRing.{u2} R] [_inst_7 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7)))) (M : Matrix.{u3, u3, u2} n n R), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) f) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (Matrix.adjugate.{u3, u1} n S (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_6))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_7))) f) M))
Case conversion may be inaccurate. Consider using '#align ring_hom.map_adjugate RingHom.map_adjugateₓ'. -/
theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →+* S)
(M : Matrix n n R) : f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
@@ -559,7 +559,7 @@ theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →
lean 3 declaration is
forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u4}} [_inst_6 : CommSemiring.{u2} R] [_inst_7 : CommRing.{u3} A] [_inst_8 : CommRing.{u4} B] [_inst_9 : Algebra.{u2, u3} R A _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7))] [_inst_10 : Algebra.{u2, u4} R B _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8))] (f : AlgHom.{u2, u3, u4} R A B _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10) (M : Matrix.{u1, u1, u3} n n A), Eq.{succ (max u1 u4)} (Matrix.{u1, u1, u4} n n B) (coeFn.{max (succ (max u1 u3)) (succ (max u1 u4)), max (succ (max u1 u3)) (succ (max u1 u4))} (AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (fun (_x : AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) => (Matrix.{u1, u1, u3} n n A) -> (Matrix.{u1, u1, u4} n n B)) ([anonymous].{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (AlgHom.mapMatrix.{u3, u4, u1, u2} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10 f) (Matrix.adjugate.{u1, u3} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (Matrix.adjugate.{u1, u4} n B (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_8 (coeFn.{max (succ (max u1 u3)) (succ (max u1 u4)), max (succ (max u1 u3)) (succ (max u1 u4))} (AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (fun (_x : AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) => (Matrix.{u1, u1, u3} n n A) -> (Matrix.{u1, u1, u4} n n B)) ([anonymous].{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (AlgHom.mapMatrix.{u3, u4, u1, u2} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10 f) M))
but is expected to have type
- forall {n : Type.{u4}} [_inst_1 : DecidableEq.{succ u4} n] [_inst_2 : Fintype.{u4} n] {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_6 : CommSemiring.{u3} R] [_inst_7 : CommRing.{u2} A] [_inst_8 : CommRing.{u1} B] [_inst_9 : Algebra.{u3, u2} R A _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7))] [_inst_10 : Algebra.{u3, u1} R B _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8))] (f : AlgHom.{u3, u2, u1} R A B _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_9 _inst_10) (M : Matrix.{u4, u4, u2} n n A), Eq.{max (succ u4) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_9 _inst_10 f) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (Matrix.adjugate.{u4, u1} n B (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_8 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_9 _inst_10 f) M))
+ forall {n : Type.{u4}} [_inst_1 : DecidableEq.{succ u4} n] [_inst_2 : Fintype.{u4} n] {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_6 : CommSemiring.{u3} R] [_inst_7 : CommRing.{u2} A] [_inst_8 : CommRing.{u1} B] [_inst_9 : Algebra.{u3, u2} R A _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7))] [_inst_10 : Algebra.{u3, u1} R B _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8))] (f : AlgHom.{u3, u2, u1} R A B _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10) (M : Matrix.{u4, u4, u2} n n A), Eq.{max (succ u4) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10 f) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (Matrix.adjugate.{u4, u1} n B (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_8 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_7)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_8)) _inst_9 _inst_10 f) M))
Case conversion may be inaccurate. Consider using '#align alg_hom.map_adjugate AlgHom.map_adjugateₓ'. -/
theorem AlgHom.map_adjugate {R A B : Type _} [CommSemiring R] [CommRing A] [CommRing B]
[Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (M : Matrix n n A) :
@@ -571,7 +571,7 @@ theorem AlgHom.map_adjugate {R A B : Type _} [CommSemiring R] [CommRing A] [Comm
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
Case conversion may be inaccurate. Consider using '#align matrix.det_adjugate Matrix.det_adjugateₓ'. -/
theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.card n - 1) :=
by
@@ -609,7 +609,7 @@ theorem adjugate_fin_zero (A : Matrix (Fin 0) (Fin 0) α) : adjugate A = 0 :=
lean 3 declaration is
forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (b : Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (One.one.{0} Nat Nat.hasOne)) (Fin (One.one.{0} Nat Nat.hasOne)) α) 1 (OfNat.mk.{u1} (Matrix.{0, 0, u1} (Fin (One.one.{0} Nat Nat.hasOne)) (Fin (One.one.{0} Nat Nat.hasOne)) α) 1 (One.one.{u1} (Matrix.{0, 0, u1} (Fin (One.one.{0} Nat Nat.hasOne)) (Fin (One.one.{0} Nat Nat.hasOne)) α) (Matrix.hasOne.{u1, 0} (Fin (One.one.{0} Nat Nat.hasOne)) α (fun (a : Fin (One.one.{0} Nat Nat.hasOne)) (b : Fin (One.one.{0} Nat Nat.hasOne)) => Fin.decidableEq (One.one.{0} Nat Nat.hasOne) a b) (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (CommRing.toRing.{u1} α _inst_5)))))) (AddMonoidWithOne.toOne.{u1} α (AddGroupWithOne.toAddMonoidWithOne.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_5)))))))))
but is expected to have type
- forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (b : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) 1 (One.toOfNat1.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) (Matrix.one.{u1, 0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (b : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) a b) (CommMonoidWithZero.toZero.{u1} α (CommSemiring.toCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_5))) (NonAssocRing.toOne.{u1} α (Ring.toNonAssocRing.{u1} α (CommRing.toRing.{u1} α _inst_5))))))
+ forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (b : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) 1 (One.toOfNat1.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) (Matrix.one.{u1, 0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (b : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) a b) (CommMonoidWithZero.toZero.{u1} α (CommSemiring.toCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_5))) (Semiring.toOne.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_5))))))
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_fin_one Matrix.adjugate_fin_oneₓ'. -/
@[simp]
theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
@@ -728,7 +728,7 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjuga
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (k : Nat), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_5))))) A k)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) k)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (k : Nat), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) A k)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) k)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (k : Nat), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) A k)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) k)
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_pow Matrix.adjugate_powₓ'. -/
@[simp]
theorem adjugate_pow (A : Matrix n n α) (k : ℕ) : adjugate (A ^ k) = adjugate A ^ k :=
@@ -742,7 +742,7 @@ theorem adjugate_pow (A : Matrix n n α) (k : ℕ) : adjugate (A ^ k) = adjugate
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) A)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) A)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) A)
Case conversion may be inaccurate. Consider using '#align matrix.det_smul_adjugate_adjugate Matrix.det_smul_adjugate_adjugateₓ'. -/
theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
det A • adjugate (adjugate A) = det A ^ (Fintype.card n - 1) • A :=
@@ -757,7 +757,7 @@ theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), (Ne.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) A))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), (Ne.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) -> (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))) A))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), (Ne.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) -> (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))) A))
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_adjugate Matrix.adjugate_adjugateₓ'. -/
/-- Note that this is not true for `fintype.card n = 1` since `1 - 2 = 0` and not `-1`. -/
theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
@@ -788,7 +788,7 @@ theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) [_inst_6 : Nontrivial.{u1} n], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) A)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))) A)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))) A)
Case conversion may be inaccurate. Consider using '#align matrix.adjugate_adjugate' Matrix.adjugate_adjugate'ₓ'. -/
/-- A weaker version of `matrix.adjugate_adjugate` that uses `nontrivial`. -/
theorem adjugate_adjugate' (A : Matrix n n α) [Nontrivial n] :
mathlib commit https://github.com/leanprover-community/mathlib/commit/36b8aa61ea7c05727161f96a0532897bd72aedab
@@ -451,7 +451,7 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (SMul.smul.{u2, max u1 u2} α (n -> α) (Function.hasSMul.{u1, u2, u2} n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3231 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3227 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.mul_vec_cramer Matrix.mulVec_cramerₓ'. -/
/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
@@ -117,7 +117,7 @@ def cramer (A : Matrix n n α) : (n → α) →ₗ[α] n → α :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_apply Matrix.cramer_applyₓ'. -/
theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
rfl
@@ -127,7 +127,7 @@ theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_apply Matrix.cramer_transpose_applyₓ'. -/
theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det := by
rw [cramer_apply, update_column_transpose, det_transpose]
@@ -137,7 +137,7 @@ theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_selfₓ'. -/
theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.det :=
by
@@ -157,7 +157,7 @@ theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.de
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_row_self Matrix.cramer_row_selfₓ'. -/
theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.single i A.det :=
by
@@ -170,7 +170,7 @@ theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.singl
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (OfNat.mk.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (One.one.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.module.End.hasOne.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 1 (One.toOfNat1.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instOneEnd.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (One.toOfNat1.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.instOneEnd.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_one Matrix.cramer_oneₓ'. -/
@[simp]
theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
@@ -186,7 +186,7 @@ theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) r A)) (SMul.smul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.hasSmul.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Module.toDistribMulAction.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Function.smulCommClass.{u1, u2, u2, u2} n α α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (Monoid.toMulAction.{u2} α (CommMonoid.toMonoid.{u2} α (CommRing.toCommMonoid.{u2} α _inst_5)))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (instHSMul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (ᾰ : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instSMulLinearMap.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.distribMulAction.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (fun (i : n) => AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (fun (i : n) => Module.toDistribMulAction.{u2, u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Pi.smulCommClass.{u1, u2, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α α (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (MulActionWithZero.toMulAction.{u2, u2} α α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (MonoidWithZero.toMulActionWithZero.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (instHSMul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (ᾰ : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.instSMulLinearMap.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.distribMulAction.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (fun (i : n) => AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (fun (i : n) => Module.toDistribMulAction.{u2, u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Pi.smulCommClass.{u1, u2, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α α (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (MulActionWithZero.toMulAction.{u2, u2} α α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (MonoidWithZero.toMulActionWithZero.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_smul Matrix.cramer_smulₓ'. -/
theorem cramer_smul (r : α) (A : Matrix n n α) :
cramer (r • A) = r ^ (Fintype.card n - 1) • cramer A :=
@@ -197,7 +197,7 @@ theorem cramer_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
Case conversion may be inaccurate. Consider using '#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_applyₓ'. -/
@[simp]
theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n → α) (i : n) :
@@ -208,7 +208,7 @@ theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.zero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasZero.{u2, u1, u1} n n α (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (OfNat.mk.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (Zero.zero.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.hasZero.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 0 (Zero.toOfNat0.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instZeroLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (Zero.toOfNat0.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.instZeroLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_zero Matrix.cramer_zeroₓ'. -/
theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
by
@@ -223,7 +223,7 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : β -> n -> α), Eq.{succ (max u1 u2)} (n -> α) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => f x)))
but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer Matrix.sum_cramerₓ'. -/
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
@@ -235,7 +235,7 @@ theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : n -> β -> α) (i : n), Eq.{succ u2} α (Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => f j x)) i)
but is expected to have type
- forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer_apply Matrix.sum_cramer_applyₓ'. -/
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
@@ -255,7 +255,7 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α 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))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) (Equiv.symm.{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))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equivₓ'. -/
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
@@ -269,7 +269,7 @@ theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α)
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (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 α) (Matrix.{u2, u2, u3} n n α)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) => (Matrix.{u1, u1, u3} m m α) -> (Matrix.{u2, u2, u3} n n α)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) 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) (Equiv.symm.{succ u1, succ u2} m n e)))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
Case conversion may be inaccurate. Consider using '#align matrix.cramer_reindex Matrix.cramer_reindexₓ'. -/
theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
@@ -376,7 +376,7 @@ theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVecₓ'. -/
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
@@ -399,7 +399,7 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) k (A i k)) j)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate_apply Matrix.mul_adjugate_applyₓ'. -/
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
A i k * adjugate A k j = cramer Aᵀ (Pi.single k (A i k)) j := by
@@ -451,7 +451,7 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
lean 3 declaration is
forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (SMul.smul.{u2, max u1 u2} α (n -> α) (Function.hasSMul.{u1, u2, u2} n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
but is expected to have type
- forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3231 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3231 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
Case conversion may be inaccurate. Consider using '#align matrix.mul_vec_cramer Matrix.mulVec_cramerₓ'. -/
/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e281deff072232a3c5b3e90034bd65dde396312
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module linear_algebra.matrix.adjugate
-! leanprover-community/mathlib commit 0e2aab2b0d521f060f62a14d2cf2e2c54e8491d6
+! leanprover-community/mathlib commit 4f81bc21e32048db7344b7867946e992cf5f68cc
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.RingTheory.Polynomial.Basic
/-!
# Cramer's rule and adjugate matrices
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
The adjugate matrix is the transpose of the cofactor matrix.
It is calculated with Cramer's rule, which we introduce first.
The vectors returned by Cramer's rule are given by the linear map `cramer`,
mathlib commit https://github.com/leanprover-community/mathlib/commit/246f6f7989ff86bd07e1b014846f11304f33cf9e
@@ -70,6 +70,7 @@ section Cramer
variable (A : Matrix n n α) (b : n → α)
+#print Matrix.cramerMap /-
/-- `cramer_map A b i` is the determinant of the matrix `A` with column `i` replaced with `b`,
and thus `cramer_map A b` is the vector output by Cramer's rule on `A` and `b`.
@@ -79,19 +80,25 @@ variable (A : Matrix n n α) (b : n → α)
def cramerMap (i : n) : α :=
(A.updateColumn i b).det
#align matrix.cramer_map Matrix.cramerMap
+-/
+#print Matrix.cramerMap_is_linear /-
theorem cramerMap_is_linear (i : n) : IsLinearMap α fun b => cramerMap A b i :=
{ map_add := det_updateColumn_add _ _
map_smul := det_updateColumn_smul _ _ }
#align matrix.cramer_map_is_linear Matrix.cramerMap_is_linear
+-/
+#print Matrix.cramer_is_linear /-
theorem cramer_is_linear : IsLinearMap α (cramerMap A) :=
by
constructor <;> intros <;> ext i
· apply (cramer_map_is_linear A i).1
· apply (cramer_map_is_linear A i).2
#align matrix.cramer_is_linear Matrix.cramer_is_linear
+-/
+#print Matrix.cramer /-
/-- `cramer A b i` is the determinant of the matrix `A` with column `i` replaced with `b`,
and thus `cramer A b` is the vector output by Cramer's rule on `A` and `b`.
@@ -101,15 +108,34 @@ theorem cramer_is_linear : IsLinearMap α (cramerMap A) :=
def cramer (A : Matrix n n α) : (n → α) →ₗ[α] n → α :=
IsLinearMap.mk' (cramerMap A) (cramer_is_linear A)
#align matrix.cramer Matrix.cramer
+-/
+/- warning: matrix.cramer_apply -> Matrix.cramer_apply is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateColumn.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_apply Matrix.cramer_applyₓ'. -/
theorem cramer_apply (i : n) : cramer A b i = (A.updateColumn i b).det :=
rfl
#align matrix.cramer_apply Matrix.cramer_apply
+/- warning: matrix.cramer_transpose_apply -> Matrix.cramer_transpose_apply is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) b i) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A i b))
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_apply Matrix.cramer_transpose_applyₓ'. -/
theorem cramer_transpose_apply (i : n) : cramer Aᵀ b i = (A.updateRow i b).det := by
rw [cramer_apply, update_column_transpose, det_transpose]
#align matrix.cramer_transpose_apply Matrix.cramer_transpose_apply
+/- warning: matrix.cramer_transpose_row_self -> Matrix.cramer_transpose_row_self is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) (A i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (A i)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A))
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_selfₓ'. -/
theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.det :=
by
ext j
@@ -124,6 +150,12 @@ theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.de
rw [update_row_self, update_row_ne (Ne.symm h)]
#align matrix.cramer_transpose_row_self Matrix.cramer_transpose_row_self
+/- warning: matrix.cramer_row_self -> Matrix.cramer_row_self is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), (forall (j : n), Eq.{succ u2} α (b j) (A j i)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)))
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_row_self Matrix.cramer_row_selfₓ'. -/
theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.single i A.det :=
by
rw [← transpose_transpose A, det_transpose]
@@ -131,6 +163,12 @@ theorem cramer_row_self (i : n) (h : ∀ j, b j = A j i) : A.cramer b = Pi.singl
exact funext h
#align matrix.cramer_row_self Matrix.cramer_row_self
+/- warning: matrix.cramer_one -> Matrix.cramer_one is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (OfNat.mk.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 1 (One.one.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.module.End.hasOne.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 1 (One.toOfNat1.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instOneEnd.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_one Matrix.cramer_oneₓ'. -/
@[simp]
theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
by
@@ -141,16 +179,34 @@ theorem cramer_one : cramer (1 : Matrix n n α) = 1 :=
rw [Matrix.one_eq_pi_single, Pi.single_comm]
#align matrix.cramer_one Matrix.cramer_one
+/- warning: matrix.cramer_smul -> Matrix.cramer_smul is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) r A)) (SMul.smul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.hasSmul.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Module.toDistribMulAction.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Function.smulCommClass.{u1, u2, u2, u2} n α α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (Monoid.toMulAction.{u2} α (CommMonoid.toMonoid.{u2} α (CommRing.toCommMonoid.{u2} α _inst_5)))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (instHSMul.{u2, max u1 u2} α (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (ᾰ : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instSMulLinearMap.{u2, u2, u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.distribMulAction.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (fun (i : n) => AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (fun (i : n) => Module.toDistribMulAction.{u2, u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Pi.smulCommClass.{u1, u2, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.279 : n) => α) α α (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => smulCommClass_self.{u2, u2} α α (CommRing.toCommMonoid.{u2} α _inst_5) (MulActionWithZero.toMulAction.{u2, u2} α α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (MonoidWithZero.toMulActionWithZero.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_smul Matrix.cramer_smulₓ'. -/
theorem cramer_smul (r : α) (A : Matrix n n α) :
cramer (r • A) = r ^ (Fintype.card n - 1) • cramer A :=
LinearMap.ext fun b => funext fun _ => det_updateColumn_smul' _ _ _ _
#align matrix.cramer_smul Matrix.cramer_smul
+/- warning: matrix.cramer_subsingleton_apply -> Matrix.cramer_subsingleton_apply is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α) (i : n), Eq.{succ u2} α (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b i) (b i)
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_applyₓ'. -/
@[simp]
theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n → α) (i : n) :
cramer A b i = b i := by rw [cramer_apply, det_eq_elem_of_subsingleton _ i, update_column_self]
#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_apply
+/- warning: matrix.cramer_zero -> Matrix.cramer_zero is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.zero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasZero.{u2, u1, u1} n n α (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (OfNat.mk.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) 0 (Zero.zero.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (LinearMap.hasZero.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) 0 (Zero.toOfNat0.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (LinearMap.instZeroLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_zero Matrix.cramer_zeroₓ'. -/
theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
by
ext (i j)
@@ -160,12 +216,24 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 :=
simp [update_column_ne hj']
#align matrix.cramer_zero Matrix.cramer_zero
+/- warning: matrix.sum_cramer -> Matrix.sum_cramer is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : β -> n -> α), Eq.{succ (max u1 u2)} (n -> α) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u1 u2, u3} (n -> α) β (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) s (fun (x : β) => f x)))
+but is expected to have type
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : β -> n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (f x))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (Finset.sum.{max u2 u3, u1} (n -> α) β (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) s (fun (x : β) => f x)))
+Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer Matrix.sum_cramerₓ'. -/
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
(∑ x in s, cramer A (f x)) = cramer A (∑ x in s, f x) :=
(LinearMap.map_sum (cramer A)).symm
#align matrix.sum_cramer Matrix.sum_cramer
+/- warning: matrix.sum_cramer_apply -> Matrix.sum_cramer_apply is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) {β : Type.{u3}} (s : Finset.{u3} β) (f : n -> β -> α) (i : n), Eq.{succ u2} α (Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u2, u3} α β (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) s (fun (x : β) => f j x)) i)
+but is expected to have type
+ forall {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u2, u2, u3} n n α) {β : Type.{u1}} (s : Finset.{u1} β) (f : n -> β -> α) (i : n), Eq.{succ u3} α (Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => f j x) i)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (fun (j : n) => Finset.sum.{u3, u1} α β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) s (fun (x : β) => f j x)) i)
+Case conversion may be inaccurate. Consider using '#align matrix.sum_cramer_apply Matrix.sum_cramer_applyₓ'. -/
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
(∑ x in s, cramer A (fun j => f j x) i) = cramer A (fun j : n => ∑ x in s, f j x) i :=
@@ -180,6 +248,12 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
#align matrix.sum_cramer_apply Matrix.sum_cramer_apply
+/- warning: matrix.cramer_submatrix_equiv -> Matrix.cramer_submatrix_equiv is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α 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))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) (Equiv.symm.{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))
+but is expected to have type
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (A : Matrix.{u1, u1, u3} m m α) (e : Equiv.{succ u2, succ u1} n m) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n α A (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) (Equiv.symm.{succ u2, succ u1} n m e)))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) e))
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equivₓ'. -/
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
by
@@ -188,6 +262,12 @@ theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α)
det_submatrix_equiv_self e]
#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equiv
+/- warning: matrix.cramer_reindex -> Matrix.cramer_reindex is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} (n -> α) (coeFn.{succ (max u2 u3), succ (max u2 u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u2, u3, u3} n α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (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 α) (Matrix.{u2, u2, u3} n n α)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) => (Matrix.{u1, u1, u3} m m α) -> (Matrix.{u2, u2, u3} n n α)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (coeFn.{succ (max u1 u3), succ (max u1 u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (_x : LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) => (m -> α) -> m -> α) (LinearMap.hasCoeToFun.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (Pi.Function.module.{u1, u3, u3} m α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toAddCommGroup.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Semiring.toModule.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (RingHom.id.{u3} α (Semiring.toNonAssocSemiring.{u3} α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} m n) (fun (_x : Equiv.{succ u1, succ u2} m n) => m -> n) (Equiv.hasCoeToFun.{succ u1, succ u2} m n) 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) (Equiv.symm.{succ u1, succ u2} m n e)))
+but is expected to have type
+ forall {m : Type.{u1}} {n : Type.{u2}} {α : Type.{u3}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : DecidableEq.{succ u1} m] [_inst_4 : Fintype.{u1} m] [_inst_5 : CommRing.{u3} α] (e : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m α) (b : n -> α), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u3, u3, max u2 u3, max u2 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u2 u3, max u2 u3} α α (n -> α) (n -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u2, u3, u3} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u2, u3} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u3) (succ u2)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.{u1, u1, u3} m m α) (fun (_x : Matrix.{u1, u1, u3} m m α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u1, u1, u3} m m α) => Matrix.{u2, u2, u3} n n α) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u2) (succ u3)} (Matrix.{u1, u1, u3} m m α) (Matrix.{u2, u2, u3} n n α)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n α e e) A)) b) (Function.comp.{succ u2, succ u1, succ u3} n m α (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u3, u3, max u1 u3, max u1 u3} α α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))) (m -> α) (m -> α) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5))))) (m -> α) (fun (_x : m -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : m -> α) => m -> α) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, max u1 u3, max u1 u3} α α (m -> α) (m -> α) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => α) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5)))))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (Pi.module.{u1, u3, u3} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : m) => α) α (Ring.toSemiring.{u3} α (CommRing.toRing.{u3} α _inst_5)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} α (NonAssocRing.toNonUnitalNonAssocRing.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (fun (i : m) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u3, u3} α α (CommRing.toCommSemiring.{u3} α _inst_5) _inst_5 (Algebra.id.{u3} α (CommRing.toCommSemiring.{u3} α _inst_5)))) (RingHom.id.{u3} α (NonAssocRing.toNonAssocSemiring.{u3} α (Ring.toNonAssocRing.{u3} α (CommRing.toRing.{u3} α _inst_5))))) (Matrix.cramer.{u1, u3} m α (fun (a : m) (b : m) => _inst_3 a b) _inst_4 _inst_5 A) (Function.comp.{succ u1, succ u2, succ u3} m n α b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Equiv.{succ u1, succ u2} m n) m (fun (_x : m) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : m) => n) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} m n) e))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (Equiv.{succ u2, succ u1} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} n m) (Equiv.symm.{succ u1, succ u2} m n e)))
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_reindex Matrix.cramer_reindexₓ'. -/
theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
cramer_submatrix_equiv _ _ _
@@ -205,6 +285,7 @@ These will hold for any matrix over a commutative ring.
-/
+#print Matrix.adjugate /-
/-- The adjugate matrix is the transpose of the cofactor matrix.
Typically, the cofactor matrix is defined by taking minors,
@@ -216,16 +297,26 @@ These will hold for any matrix over a commutative ring.
def adjugate (A : Matrix n n α) : Matrix n n α :=
of fun i => cramer Aᵀ (Pi.single i 1)
#align matrix.adjugate Matrix.adjugate
+-/
+#print Matrix.adjugate_def /-
theorem adjugate_def (A : Matrix n n α) : adjugate A = of fun i => cramer Aᵀ (Pi.single i 1) :=
rfl
#align matrix.adjugate_def Matrix.adjugate_def
+-/
+/- warning: matrix.adjugate_apply -> Matrix.adjugate_apply is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n), Eq.{succ u2} α (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A i j) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A j (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) i (OfNat.ofNat.{u2} α 1 (OfNat.mk.{u2} α 1 (One.one.{u2} α (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n), Eq.{succ u2} α (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A i j) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.updateRow.{u2, u1, u1} n n α (fun (a : n) (b : n) => _inst_1 a b) A j (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) i (OfNat.ofNat.{u2} α 1 (One.toOfNat1.{u2} α (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_apply Matrix.adjugate_applyₓ'. -/
theorem adjugate_apply (A : Matrix n n α) (i j : n) :
adjugate A i j = (A.updateRow j (Pi.single i 1)).det := by
rw [adjugate_def, of_apply, cramer_apply, update_column_transpose, det_transpose]
#align matrix.adjugate_apply Matrix.adjugate_apply
+#print Matrix.adjugate_transpose /-
theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ :=
by
ext (i j)
@@ -256,7 +347,9 @@ theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ
intro h'
exact h ((symm_apply_eq σ).mp h')
#align matrix.adjugate_transpose Matrix.adjugate_transpose
+-/
+#print Matrix.adjugate_submatrix_equiv_self /-
@[simp]
theorem adjugate_submatrix_equiv_self (e : n ≃ m) (A : Matrix m m α) :
adjugate (A.submatrix e e) = (adjugate A).submatrix e e :=
@@ -267,12 +360,21 @@ theorem adjugate_submatrix_equiv_self (e : n ≃ m) (A : Matrix m m α) :
congr
exact Function.update_comp_equiv _ e.symm _ _
#align matrix.adjugate_submatrix_equiv_self Matrix.adjugate_submatrix_equiv_self
+-/
+#print Matrix.adjugate_reindex /-
theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
adjugate (reindex e e A) = reindex e e (adjugate A) :=
adjugate_submatrix_equiv_self _ _
#align matrix.adjugate_reindex Matrix.adjugate_reindex
+-/
+/- warning: matrix.cramer_eq_adjugate_mul_vec -> Matrix.cramer_eq_adjugate_mulVec is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) b) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)
+Case conversion may be inaccurate. Consider using '#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVecₓ'. -/
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
@@ -290,12 +392,24 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
simp [mul_vec, dot_product, mul_comm]
#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVec
+/- warning: matrix.mul_adjugate_apply -> Matrix.mul_adjugate_apply is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) k (A i k)) j)
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (i : n) (j : n) (k : n), Eq.{succ u2} α (HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (A i k) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A k j)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.transpose.{u2, u1, u1} n n α A)) (Pi.single.{u1, u2} n (fun (ᾰ : n) => α) (fun (a : n) (b : n) => _inst_1 a b) (fun (i : n) => CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) k (A i k)) j)
+Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate_apply Matrix.mul_adjugate_applyₓ'. -/
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
A i k * adjugate A k j = cramer Aᵀ (Pi.single k (A i k)) j := by
erw [← smul_eq_mul, ← Pi.smul_apply, ← LinearMap.map_smul, ← Pi.single_smul', smul_eq_mul,
mul_one]
#align matrix.mul_adjugate_apply Matrix.mul_adjugate_apply
+/- warning: matrix.mul_adjugate -> Matrix.mul_adjugate is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.mul_adjugate Matrix.mul_adjugateₓ'. -/
theorem mul_adjugate (A : Matrix n n α) : A ⬝ adjugate A = A.det • 1 :=
by
ext (i j)
@@ -303,6 +417,12 @@ theorem mul_adjugate (A : Matrix n n α) : A ⬝ adjugate A = A.det • 1 :=
simp [mul_adjugate_apply, sum_cramer_apply, cramer_transpose_row_self, Pi.single_apply, eq_comm]
#align matrix.mul_adjugate Matrix.mul_adjugate
+/- warning: matrix.adjugate_mul -> Matrix.adjugate_mul is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) A) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) A) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_mul Matrix.adjugate_mulₓ'. -/
theorem adjugate_mul (A : Matrix n n α) : adjugate A ⬝ A = A.det • 1 :=
calc
adjugate A ⬝ A = (Aᵀ ⬝ adjugate Aᵀ)ᵀ := by
@@ -311,6 +431,12 @@ theorem adjugate_mul (A : Matrix n n α) : adjugate A ⬝ A = A.det • 1 :=
#align matrix.adjugate_mul Matrix.adjugate_mul
+/- warning: matrix.adjugate_smul -> Matrix.adjugate_smul is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) r A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (r : α) (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) r A)) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) r (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_smul Matrix.adjugate_smulₓ'. -/
theorem adjugate_smul (r : α) (A : Matrix n n α) :
adjugate (r • A) = r ^ (Fintype.card n - 1) • adjugate A :=
by
@@ -318,6 +444,12 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
rfl
#align matrix.adjugate_smul Matrix.adjugate_smul
+/- warning: matrix.mul_vec_cramer -> Matrix.mulVec_cramer is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) => (n -> α) -> n -> α) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (SMul.smul.{u2, max u1 u2} α (n -> α) (Function.hasSMul.{u1, u2, u2} n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (b : n -> α), Eq.{max (succ u1) (succ u2)} (n -> α) (Matrix.mulVec.{u2, u1, u1} n n α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) _inst_2 A (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (n -> α) (fun (_x : n -> α) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : n -> α) => n -> α) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} α α (n -> α) (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : n) => α) α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (fun (i : n) => _private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) _inst_5 (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5)))) (RingHom.id.{u2} α (NonAssocRing.toNonAssocSemiring.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.cramer.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) b)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (n -> α) (n -> α) (instHSMul.{u2, max u1 u2} α (n -> α) (Pi.instSMul.{u1, u2, u2} n α (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.3231 : n) => α) (fun (i : n) => Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) b)
+Case conversion may be inaccurate. Consider using '#align matrix.mul_vec_cramer Matrix.mulVec_cramerₓ'. -/
/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
divides `b`. -/
@@ -326,18 +458,36 @@ theorem mulVec_cramer (A : Matrix n n α) (b : n → α) : A.mulVec (cramer A b)
rw [cramer_eq_adjugate_mul_vec, mul_vec_mul_vec, mul_adjugate, smul_mul_vec_assoc, one_mul_vec]
#align matrix.mul_vec_cramer Matrix.mulVec_cramer
+/- warning: matrix.adjugate_subsingleton -> Matrix.adjugate_subsingleton is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Subsingleton.{succ u1} n] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_subsingleton Matrix.adjugate_subsingletonₓ'. -/
theorem adjugate_subsingleton [Subsingleton n] (A : Matrix n n α) : adjugate A = 1 :=
by
ext (i j)
simp [Subsingleton.elim i j, adjugate_apply, det_eq_elem_of_subsingleton _ i]
#align matrix.adjugate_subsingleton Matrix.adjugate_subsingleton
+/- warning: matrix.adjugate_eq_one_of_card_eq_one -> Matrix.adjugate_eq_one_of_card_eq_one is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (Eq.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (Eq.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) -> (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_eq_one_of_card_eq_one Matrix.adjugate_eq_one_of_card_eq_oneₓ'. -/
theorem adjugate_eq_one_of_card_eq_one {A : Matrix n n α} (h : Fintype.card n = 1) :
adjugate A = 1 :=
haveI : Subsingleton n := fintype.card_le_one_iff_subsingleton.mp h.le
adjugate_subsingleton _
#align matrix.adjugate_eq_one_of_card_eq_one Matrix.adjugate_eq_one_of_card_eq_one
+/- warning: matrix.adjugate_zero -> Matrix.adjugate_zero is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.zero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasZero.{u2, u1, u1} n n α (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.zero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasZero.{u2, u1, u1} n n α (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))))))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 0 (Zero.toOfNat0.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.zero.{u2, u1, u1} n n α (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_zero Matrix.adjugate_zeroₓ'. -/
@[simp]
theorem adjugate_zero [Nontrivial n] : adjugate (0 : Matrix n n α) = 0 :=
by
@@ -348,6 +498,12 @@ theorem adjugate_zero [Nontrivial n] : adjugate (0 : Matrix n n α) = 0 :=
simp [update_column_ne hj']
#align matrix.adjugate_zero Matrix.adjugate_zero
+/- warning: matrix.adjugate_one -> Matrix.adjugate_one is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_5)))))))))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (NonAssocRing.toOne.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_one Matrix.adjugate_oneₓ'. -/
@[simp]
theorem adjugate_one : adjugate (1 : Matrix n n α) = 1 :=
by
@@ -355,6 +511,12 @@ theorem adjugate_one : adjugate (1 : Matrix n n α) = 1 :=
simp [adjugate_def, Matrix.one_apply, Pi.single_apply, eq_comm]
#align matrix.adjugate_one Matrix.adjugate_one
+/- warning: matrix.adjugate_diagonal -> Matrix.adjugate_diagonal is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (v : n -> α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.diagonal.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) v)) (Matrix.diagonal.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (fun (i : n) => Finset.prod.{u2, u1} α n (CommRing.toCommMonoid.{u2} α _inst_5) (Finset.erase.{u1} n (fun (a : n) (b : n) => _inst_1 a b) (Finset.univ.{u1} n _inst_2) i) (fun (j : n) => v j)))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (v : n -> α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.diagonal.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) v)) (Matrix.diagonal.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))) (fun (i : n) => Finset.prod.{u2, u1} α n (CommRing.toCommMonoid.{u2} α _inst_5) (Finset.erase.{u1} n (fun (a : n) (b : n) => _inst_1 a b) (Finset.univ.{u1} n _inst_2) i) (fun (j : n) => v j)))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_diagonal Matrix.adjugate_diagonalₓ'. -/
@[simp]
theorem adjugate_diagonal (v : n → α) :
adjugate (diagonal v) = diagonal fun i => ∏ j in Finset.univ.eraseₓ i, v j :=
@@ -372,6 +534,12 @@ theorem adjugate_diagonal (v : n → α) :
· rw [update_column_ne hjk, diagonal_apply_ne' _ hjk]
#align matrix.adjugate_diagonal Matrix.adjugate_diagonal
+/- warning: ring_hom.map_adjugate -> RingHom.map_adjugate is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {R : Type.{u2}} {S : Type.{u3}} [_inst_6 : CommRing.{u2} R] [_inst_7 : CommRing.{u3} S] (f : RingHom.{u2, u3} R S (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7)))) (M : Matrix.{u1, u1, u2} n n R), Eq.{succ (max u1 u3)} (Matrix.{u1, u1, u3} n n S) (coeFn.{max (succ (max u1 u2)) (succ (max u1 u3)), max (succ (max u1 u2)) (succ (max u1 u3))} (RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) => (Matrix.{u1, u1, u2} n n R) -> (Matrix.{u1, u1, u3} n n S)) (RingHom.hasCoeToFun.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHom.mapMatrix.{u2, u3, u1} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) f) (Matrix.adjugate.{u1, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (Matrix.adjugate.{u1, u3} n S (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 (coeFn.{max (succ (max u1 u2)) (succ (max u1 u3)), max (succ (max u1 u2)) (succ (max u1 u3))} (RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) => (Matrix.{u1, u1, u2} n n R) -> (Matrix.{u1, u1, u3} n n S)) (RingHom.hasCoeToFun.{max u1 u2, max u1 u3} (Matrix.{u1, u1, u2} n n R) (Matrix.{u1, u1, u3} n n S) (Matrix.nonAssocSemiring.{u2, u1} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u3, u1} n S (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHom.mapMatrix.{u2, u3, u1} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_7))) f) M))
+but is expected to have type
+ forall {n : Type.{u3}} [_inst_1 : DecidableEq.{succ u3} n] [_inst_2 : Fintype.{u3} n] {R : Type.{u2}} {S : Type.{u1}} [_inst_6 : CommRing.{u2} R] [_inst_7 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7)))) (M : Matrix.{u3, u3, u2} n n R), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) f) (Matrix.adjugate.{u3, u2} n R (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_6 M)) (Matrix.adjugate.{u3, u1} n S (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (fun (_x : Matrix.{u3, u3, u2} n n R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Matrix.{u3, u3, u2} n n R) => Matrix.{u3, u3, u1} n n S) _x) (MulHomClass.toFunLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u1) u3, max u2 u3, max u1 u3} (RingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))) (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (RingHom.instRingHomClassRingHom.{max u2 u3, max u1 u3} (Matrix.{u3, u3, u2} n n R) (Matrix.{u3, u3, u1} n n S) (Matrix.nonAssocSemiring.{u2, u3} n R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.nonAssocSemiring.{u1, u3} n S (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (RingHom.mapMatrix.{u2, u1, u3} n R S _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_6))) (NonAssocRing.toNonAssocSemiring.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_7))) f) M))
+Case conversion may be inaccurate. Consider using '#align ring_hom.map_adjugate RingHom.map_adjugateₓ'. -/
theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →+* S)
(M : Matrix n n R) : f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
by
@@ -384,12 +552,24 @@ theorem RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →
map_update_row, ← RingHom.mapMatrix_apply, ← RingHom.map_det, ← adjugate_apply]
#align ring_hom.map_adjugate RingHom.map_adjugate
+/- warning: alg_hom.map_adjugate -> AlgHom.map_adjugate is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u4}} [_inst_6 : CommSemiring.{u2} R] [_inst_7 : CommRing.{u3} A] [_inst_8 : CommRing.{u4} B] [_inst_9 : Algebra.{u2, u3} R A _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7))] [_inst_10 : Algebra.{u2, u4} R B _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8))] (f : AlgHom.{u2, u3, u4} R A B _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10) (M : Matrix.{u1, u1, u3} n n A), Eq.{succ (max u1 u4)} (Matrix.{u1, u1, u4} n n B) (coeFn.{max (succ (max u1 u3)) (succ (max u1 u4)), max (succ (max u1 u3)) (succ (max u1 u4))} (AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (fun (_x : AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) => (Matrix.{u1, u1, u3} n n A) -> (Matrix.{u1, u1, u4} n n B)) ([anonymous].{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (AlgHom.mapMatrix.{u3, u4, u1, u2} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10 f) (Matrix.adjugate.{u1, u3} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (Matrix.adjugate.{u1, u4} n B (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_8 (coeFn.{max (succ (max u1 u3)) (succ (max u1 u4)), max (succ (max u1 u3)) (succ (max u1 u4))} (AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (fun (_x : AlgHom.{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) => (Matrix.{u1, u1, u3} n n A) -> (Matrix.{u1, u1, u4} n n B)) ([anonymous].{u2, max u1 u3, max u1 u4} R (Matrix.{u1, u1, u3} n n A) (Matrix.{u1, u1, u4} n n B) _inst_6 (Matrix.semiring.{u3, u1} n A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u4, u1} n B (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.algebra.{u3, u1, u2} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) _inst_9) (Matrix.algebra.{u4, u1, u2} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_10)) (AlgHom.mapMatrix.{u3, u4, u1, u2} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_7)) (Ring.toSemiring.{u4} B (CommRing.toRing.{u4} B _inst_8)) _inst_9 _inst_10 f) M))
+but is expected to have type
+ forall {n : Type.{u4}} [_inst_1 : DecidableEq.{succ u4} n] [_inst_2 : Fintype.{u4} n] {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_6 : CommSemiring.{u3} R] [_inst_7 : CommRing.{u2} A] [_inst_8 : CommRing.{u1} B] [_inst_9 : Algebra.{u3, u2} R A _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7))] [_inst_10 : Algebra.{u3, u1} R B _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8))] (f : AlgHom.{u3, u2, u1} R A B _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_9 _inst_10) (M : Matrix.{u4, u4, u2} n n A), Eq.{max (succ u4) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_9 _inst_10 f) (Matrix.adjugate.{u4, u2} n A (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_7 M)) (Matrix.adjugate.{u4, u1} n B (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_8 (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) (Matrix.{u4, u4, u2} n n A) (fun (_x : Matrix.{u4, u4, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u4, u4, u2} n n A) => Matrix.{u4, u4, u1} n n B) _x) (SMulHomClass.toFunLike.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (SMulZeroClass.toSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toZero.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9)))))) (SMulZeroClass.toSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toZero.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribSMul.toSMulZeroClass.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (AddMonoid.toAddZeroClass.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) (DistribMulAction.toDistribSMul.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u2 u1) u4, u3, max u2 u4, max u1 u4} (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R _inst_6))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))) (Module.toDistribMulAction.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u4} (Matrix.{u4, u4, u2} n n A) (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u2 u4} R (Matrix.{u4, u4, u2} n n A) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9))) (Module.toDistribMulAction.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) (CommSemiring.toSemiring.{u3} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Semiring.toNonAssocSemiring.{max u1 u4} (Matrix.{u4, u4, u1} n n B) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Algebra.toModule.{u3, max u1 u4} R (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, max u2 u4, max u1 u4, max (max u2 u1) u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10) (AlgHom.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)) (AlgHom.algHomClass.{u3, max u2 u4, max u1 u4} R (Matrix.{u4, u4, u2} n n A) (Matrix.{u4, u4, u1} n n B) _inst_6 (Matrix.semiring.{u2, u4} n A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.semiring.{u1, u4} n B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u4, u3} n R A _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) _inst_9) (Matrix.instAlgebraMatrixSemiring.{u1, u4, u3} n R B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_10)))))) (AlgHom.mapMatrix.{u2, u1, u4, u3} n R A B _inst_2 (fun (a : n) (b : n) => _inst_1 a b) _inst_6 (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_7)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_8)) _inst_9 _inst_10 f) M))
+Case conversion may be inaccurate. Consider using '#align alg_hom.map_adjugate AlgHom.map_adjugateₓ'. -/
theorem AlgHom.map_adjugate {R A B : Type _} [CommSemiring R] [CommRing A] [CommRing B]
[Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (M : Matrix n n A) :
f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
f.toRingHom.map_adjugate _
#align alg_hom.map_adjugate AlgHom.map_adjugate
+/- warning: matrix.det_adjugate -> Matrix.det_adjugate is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
+Case conversion may be inaccurate. Consider using '#align matrix.det_adjugate Matrix.det_adjugateₓ'. -/
theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.card n - 1) :=
by
-- get rid of the `- 1`
@@ -411,16 +591,34 @@ theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.c
#align matrix.det_adjugate Matrix.det_adjugate
+/- warning: matrix.adjugate_fin_zero -> Matrix.adjugate_fin_zero is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (b : Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (Zero.zero.{0} Nat Nat.hasZero)) (Fin (Zero.zero.{0} Nat Nat.hasZero)) α) 0 (OfNat.mk.{u1} (Matrix.{0, 0, u1} (Fin (Zero.zero.{0} Nat Nat.hasZero)) (Fin (Zero.zero.{0} Nat Nat.hasZero)) α) 0 (Zero.zero.{u1} (Matrix.{0, 0, u1} (Fin (Zero.zero.{0} Nat Nat.hasZero)) (Fin (Zero.zero.{0} Nat Nat.hasZero)) α) (Matrix.hasZero.{u1, 0, 0} (Fin (Zero.zero.{0} Nat Nat.hasZero)) (Fin (Zero.zero.{0} Nat Nat.hasZero)) α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (CommRing.toRing.{u1} α _inst_5))))))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (b : Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α) 0 (Zero.toOfNat0.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α) (Matrix.zero.{u1, 0, 0} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) α (CommMonoidWithZero.toZero.{u1} α (CommSemiring.toCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_5))))))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_fin_zero Matrix.adjugate_fin_zeroₓ'. -/
@[simp]
theorem adjugate_fin_zero (A : Matrix (Fin 0) (Fin 0) α) : adjugate A = 0 :=
Subsingleton.elim _ _
#align matrix.adjugate_fin_zero Matrix.adjugate_fin_zero
+/- warning: matrix.adjugate_fin_one -> Matrix.adjugate_fin_one is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (b : Fin (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (One.one.{0} Nat Nat.hasOne)) (Fin (One.one.{0} Nat Nat.hasOne)) α) 1 (OfNat.mk.{u1} (Matrix.{0, 0, u1} (Fin (One.one.{0} Nat Nat.hasOne)) (Fin (One.one.{0} Nat Nat.hasOne)) α) 1 (One.one.{u1} (Matrix.{0, 0, u1} (Fin (One.one.{0} Nat Nat.hasOne)) (Fin (One.one.{0} Nat Nat.hasOne)) α) (Matrix.hasOne.{u1, 0} (Fin (One.one.{0} Nat Nat.hasOne)) α (fun (a : Fin (One.one.{0} Nat Nat.hasOne)) (b : Fin (One.one.{0} Nat Nat.hasOne)) => Fin.decidableEq (One.one.{0} Nat Nat.hasOne) a b) (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (CommRing.toRing.{u1} α _inst_5)))))) (AddMonoidWithOne.toOne.{u1} α (AddGroupWithOne.toAddMonoidWithOne.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_5)))))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (b : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) _inst_5 A) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) 1 (One.toOfNat1.{u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α) (Matrix.one.{u1, 0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (b : Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) a b) (CommMonoidWithZero.toZero.{u1} α (CommSemiring.toCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_5))) (NonAssocRing.toOne.{u1} α (Ring.toNonAssocRing.{u1} α (CommRing.toRing.{u1} α _inst_5))))))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_fin_one Matrix.adjugate_fin_oneₓ'. -/
@[simp]
theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
adjugate_subsingleton A
#align matrix.adjugate_fin_one Matrix.adjugate_fin_one
+/- warning: matrix.adjugate_fin_two -> Matrix.adjugate_fin_two is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (b : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) _inst_5 A) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) (fun (_x : Equiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) => ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) -> (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) (Equiv.hasCoeToFun.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α)) (Matrix.of.{u1, 0, 0} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) α) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring))))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_5)))))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_5)))))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (A (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring)))))) (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) (CharZero.NeZero.two.{0} Nat (AddCommMonoidWithOne.toAddMonoidWithOne.{0} Nat (NonAssocSemiring.toAddCommMonoidWithOne.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (StrictOrderedSemiring.to_charZero.{0} Nat Nat.strictOrderedSemiring))))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecEmpty.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> α)))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_5 : CommRing.{u1} α] (A : Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α), Eq.{succ u1} (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) (Matrix.adjugate.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (b : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) _inst_5 A) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α)) ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (fun (_x : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) => Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (Matrix.{0, 0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α)) (Matrix.of.{u1, 0, 0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) α) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Neg.neg.{u1} α (Ring.toNeg.{u1} α (CommRing.toRing.{u1} α _inst_5)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecCons.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Neg.neg.{u1} α (Ring.toNeg.{u1} α (CommRing.toRing.{u1} α _inst_5)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Matrix.vecCons.{u1} α (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (A (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Matrix.vecEmpty.{u1} α))) (Matrix.vecEmpty.{u1} ((Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> α)))))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_fin_two Matrix.adjugate_fin_twoₓ'. -/
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
adjugate A = !![A 1 1, -A 0 1; -A 1 0, A 0 0] :=
by
@@ -436,18 +634,28 @@ theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
cons_val_zero, head_cons, mul_one]
#align matrix.adjugate_fin_two Matrix.adjugate_fin_two
+#print Matrix.adjugate_fin_two_of /-
@[simp]
theorem adjugate_fin_two_of (a b c d : α) : adjugate !![a, b; c, d] = !![d, -b; -c, a] :=
adjugate_fin_two _
#align matrix.adjugate_fin_two_of Matrix.adjugate_fin_two_of
+-/
+#print Matrix.adjugate_conjTranspose /-
theorem adjugate_conjTranspose [StarRing α] (A : Matrix n n α) : A.adjugateᴴ = adjugate Aᴴ :=
by
dsimp only [conj_transpose]
have : Aᵀ.adjugate.map star = adjugate (Aᵀ.map star) := (starRingEnd α).map_adjugate Aᵀ
rw [A.adjugate_transpose, this]
#align matrix.adjugate_conj_transpose Matrix.adjugate_conjTranspose
+-/
+/- warning: matrix.is_regular_of_is_left_regular_det -> Matrix.isRegular_of_isLeftRegular_det is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (IsLeftRegular.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)) -> (IsRegular.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasMul.{u2, u1} n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) A)
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] {A : Matrix.{u1, u1, u2} n n α}, (IsLeftRegular.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)) -> (IsRegular.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instMulMatrix.{u2, u1} n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) A)
+Case conversion may be inaccurate. Consider using '#align matrix.is_regular_of_is_left_regular_det Matrix.isRegular_of_isLeftRegular_detₓ'. -/
theorem isRegular_of_isLeftRegular_det {A : Matrix n n α} (hA : IsLeftRegular A.det) :
IsRegular A := by
constructor
@@ -462,6 +670,12 @@ theorem isRegular_of_isLeftRegular_det {A : Matrix n n α} (hA : IsLeftRegular A
mul_adjugate, ← Matrix.mul_assoc, ← Matrix.mul_assoc, h]
#align matrix.is_regular_of_is_left_regular_det Matrix.isRegular_of_isLeftRegular_det
+/- warning: matrix.adjugate_mul_distrib_aux -> Matrix.adjugate_mul_distrib_aux is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), (IsLeftRegular.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)) -> (IsLeftRegular.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 B)) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 B) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), (IsLeftRegular.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A)) -> (IsLeftRegular.{u2} α (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 B)) -> (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 B) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_mul_distrib_aux Matrix.adjugate_mul_distrib_auxₓ'. -/
theorem adjugate_mul_distrib_aux (A B : Matrix n n α) (hA : IsLeftRegular A.det)
(hB : IsLeftRegular B.det) : adjugate (A ⬝ B) = adjugate B ⬝ adjugate A :=
by
@@ -473,6 +687,12 @@ theorem adjugate_mul_distrib_aux (A B : Matrix n n α) (hA : IsLeftRegular A.det
smul_mul, Matrix.one_mul, mul_smul, mul_adjugate, smul_smul, mul_comm, ← det_mul]
#align matrix.adjugate_mul_distrib_aux Matrix.adjugate_mul_distrib_aux
+/- warning: matrix.adjugate_mul_distrib -> Matrix.adjugate_mul_distrib is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 B) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 B) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_mul_distrib Matrix.adjugate_mul_distribₓ'. -/
/-- Proof follows from "The trace Cayley-Hamilton theorem" by Darij Grinberg, Section 5.3
-/
theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjugate B ⬝ adjugate A :=
@@ -501,6 +721,12 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjuga
RingHom.map_adjugate, f'_inv, f'_g_mul]
#align matrix.adjugate_mul_distrib Matrix.adjugate_mul_distrib
+/- warning: matrix.adjugate_pow -> Matrix.adjugate_pow is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (k : Nat), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_5))))) A k)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_5))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) k)
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (k : Nat), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) A k)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n α) Nat (Matrix.{u1, u1, u2} n n α) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n α) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A) k)
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_pow Matrix.adjugate_powₓ'. -/
@[simp]
theorem adjugate_pow (A : Matrix n n α) (k : ℕ) : adjugate (A ^ k) = adjugate A ^ k :=
by
@@ -509,6 +735,12 @@ theorem adjugate_pow (A : Matrix n n α) (k : ℕ) : adjugate (A ^ k) = adjugate
· rw [pow_succ', mul_eq_mul, adjugate_mul_distrib, IH, ← mul_eq_mul, pow_succ]
#align matrix.adjugate_pow Matrix.adjugate_pow
+/- warning: matrix.det_smul_adjugate_adjugate -> Matrix.det_smul_adjugate_adjugate is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) A)
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (HSMul.hSMul.{u2, max u2 u1, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A))) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) A)
+Case conversion may be inaccurate. Consider using '#align matrix.det_smul_adjugate_adjugate Matrix.det_smul_adjugate_adjugateₓ'. -/
theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
det A • adjugate (adjugate A) = det A ^ (Fintype.card n - 1) • A :=
by
@@ -518,6 +750,12 @@ theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
Matrix.one_mul] at this
#align matrix.det_smul_adjugate_adjugate Matrix.det_smul_adjugate_adjugate
+/- warning: matrix.adjugate_adjugate -> Matrix.adjugate_adjugate is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), (Ne.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) A))
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), (Ne.{1} Nat (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) -> (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))) A))
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_adjugate Matrix.adjugate_adjugateₓ'. -/
/-- Note that this is not true for `fintype.card n = 1` since `1 - 2 = 0` and not `-1`. -/
theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
adjugate (adjugate A) = det A ^ (Fintype.card n - 2) • A :=
@@ -543,6 +781,12 @@ theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
rw [smul_smul, ← pow_succ, h_card', det_smul_adjugate_adjugate]
#align matrix.adjugate_adjugate Matrix.adjugate_adjugate
+/- warning: matrix.adjugate_adjugate' -> Matrix.adjugate_adjugate' is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) [_inst_6 : Nontrivial.{u1} n], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (SMul.smul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.hasSmul.{u2, u1, u1, u2} n n α α (Mul.toSMul.{u2} α (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_5)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) A)
+but is expected to have type
+ forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_5 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) [_inst_6 : Nontrivial.{u1} n], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 (Matrix.adjugate.{u1, u2} n α (fun (a : n) (b : n) => _inst_1 a b) _inst_2 _inst_5 A)) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHSMul.{u2, max u1 u2} α (Matrix.{u1, u1, u2} n n α) (Matrix.smul.{u2, u1, u1, u2} n n α α (Algebra.toSMul.{u2, u2} α α (CommRing.toCommSemiring.{u2} α _inst_5) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)) (Algebra.id.{u2} α (CommRing.toCommSemiring.{u2} α _inst_5))))) (HPow.hPow.{u2, 0, u2} α Nat α (instHPow.{u2, 0} α Nat (Monoid.Pow.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_5)))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_5 A) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u1} n _inst_2) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))) A)
+Case conversion may be inaccurate. Consider using '#align matrix.adjugate_adjugate' Matrix.adjugate_adjugate'ₓ'. -/
/-- A weaker version of `matrix.adjugate_adjugate` that uses `nontrivial`. -/
theorem adjugate_adjugate' (A : Matrix n n α) [Nontrivial n] :
adjugate (adjugate A) = det A ^ (Fintype.card n - 2) • A :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/730c6d4cab72b9d84fcfb9e95e8796e9cd8f40ba
@@ -495,7 +495,7 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjuga
by
intro M
refine' Polynomial.Monic.isRegular _
- simp only [g, Polynomial.Monic.def, ← Polynomial.leadingCoeff_det_x_one_add_c M, add_comm]
+ simp only [g, Polynomial.Monic.def, ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
rw [← f'_adj, ← f'_adj, ← f'_adj, ← mul_eq_mul (f' (adjugate (g B))), ← f'.map_mul, mul_eq_mul, ←
adjugate_mul_distrib_aux _ _ (hu A).left (hu B).left, RingHom.map_adjugate,
RingHom.map_adjugate, f'_inv, f'_g_mul]
mathlib commit https://github.com/leanprover-community/mathlib/commit/17ad94b4953419f3e3ce3e77da3239c62d1d09f0
@@ -421,7 +421,6 @@ theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
adjugate_subsingleton A
#align matrix.adjugate_fin_one Matrix.adjugate_fin_one
-/- ./././Mathport/Syntax/Translate/Tactic/Basic.lean:31:4: unsupported: too many args: matrix.notation ... #[[]] -/
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
adjugate A = !![A 1 1, -A 0 1; -A 1 0, A 0 0] :=
by
@@ -437,8 +436,6 @@ theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
cons_val_zero, head_cons, mul_one]
#align matrix.adjugate_fin_two Matrix.adjugate_fin_two
-/- ./././Mathport/Syntax/Translate/Tactic/Basic.lean:31:4: unsupported: too many args: matrix.notation ... #[[]] -/
-/- ./././Mathport/Syntax/Translate/Tactic/Basic.lean:31:4: unsupported: too many args: matrix.notation ... #[[]] -/
@[simp]
theorem adjugate_fin_two_of (a b c d : α) : adjugate !![a, b; c, d] = !![d, -b; -c, a] :=
adjugate_fin_two _
mathlib commit https://github.com/leanprover-community/mathlib/commit/17ad94b4953419f3e3ce3e77da3239c62d1d09f0
@@ -421,12 +421,9 @@ theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
adjugate_subsingleton A
#align matrix.adjugate_fin_one Matrix.adjugate_fin_one
-/- ./././Mathport/Syntax/Translate/Expr.lean:207:4: warning: unsupported notation `«expr!![ » -/
-/- ./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation -/
+/- ./././Mathport/Syntax/Translate/Tactic/Basic.lean:31:4: unsupported: too many args: matrix.notation ... #[[]] -/
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
- adjugate A =
- «expr!![ »
- "./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation" :=
+ adjugate A = !![A 1 1, -A 0 1; -A 1 0, A 0 0] :=
by
ext (i j)
rw [adjugate_apply, det_fin_two]
@@ -440,17 +437,10 @@ theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
cons_val_zero, head_cons, mul_one]
#align matrix.adjugate_fin_two Matrix.adjugate_fin_two
-/- ./././Mathport/Syntax/Translate/Expr.lean:207:4: warning: unsupported notation `«expr!![ » -/
-/- ./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation -/
-/- ./././Mathport/Syntax/Translate/Expr.lean:207:4: warning: unsupported notation `«expr!![ » -/
-/- ./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation -/
+/- ./././Mathport/Syntax/Translate/Tactic/Basic.lean:31:4: unsupported: too many args: matrix.notation ... #[[]] -/
+/- ./././Mathport/Syntax/Translate/Tactic/Basic.lean:31:4: unsupported: too many args: matrix.notation ... #[[]] -/
@[simp]
-theorem adjugate_fin_two_of (a b c d : α) :
- adjugate
- («expr!![ »
- "./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation") =
- «expr!![ »
- "./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation" :=
+theorem adjugate_fin_two_of (a b c d : α) : adjugate !![a, b; c, d] = !![d, -b; -c, a] :=
adjugate_fin_two _
#align matrix.adjugate_fin_two_of Matrix.adjugate_fin_two_of
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: Anne Baanen
! This file was ported from Lean 3 source module linear_algebra.matrix.adjugate
-! leanprover-community/mathlib commit 55102fc1d7145d8453f6d35c56d0af6f669f7d12
+! leanprover-community/mathlib commit 0e2aab2b0d521f060f62a14d2cf2e2c54e8491d6
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -47,9 +47,11 @@ cramer, cramer's rule, adjugate
namespace Matrix
-universe u v
+universe u v w
-variable {n : Type u} [DecidableEq n] [Fintype n] {α : Type v} [CommRing α]
+variable {m : Type u} {n : Type v} {α : Type w}
+
+variable [DecidableEq n] [Fintype n] [DecidableEq m] [Fintype m] [CommRing α]
open Matrix BigOperators Polynomial
@@ -115,7 +117,7 @@ theorem cramer_transpose_row_self (i : n) : Aᵀ.cramer (A i) = Pi.single i A.de
split_ifs with h
· -- i = j: this entry should be `A.det`
subst h
- simp only [update_column_transpose, det_transpose, update_row, Function.update_eq_self]
+ simp only [update_column_transpose, det_transpose, update_row_eq_self]
· -- i ≠ j: this entry should be 0
rw [update_column_transpose, det_transpose]
apply det_zero_of_row_eq h
@@ -178,6 +180,19 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
#align matrix.sum_cramer_apply Matrix.sum_cramer_apply
+theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
+ cramer (A.submatrix e e) b = cramer A (b ∘ e.symm) ∘ e :=
+ by
+ ext i
+ simp_rw [Function.comp_apply, cramer_apply, update_column_submatrix_equiv,
+ det_submatrix_equiv_self e]
+#align matrix.cramer_submatrix_equiv Matrix.cramer_submatrix_equiv
+
+theorem cramer_reindex (e : m ≃ n) (A : Matrix m m α) (b : n → α) :
+ cramer (reindex e e A) b = cramer A (b ∘ e) ∘ e.symm :=
+ cramer_submatrix_equiv _ _ _
+#align matrix.cramer_reindex Matrix.cramer_reindex
+
end Cramer
section Adjugate
@@ -242,6 +257,22 @@ theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ
exact h ((symm_apply_eq σ).mp h')
#align matrix.adjugate_transpose Matrix.adjugate_transpose
+@[simp]
+theorem adjugate_submatrix_equiv_self (e : n ≃ m) (A : Matrix m m α) :
+ adjugate (A.submatrix e e) = (adjugate A).submatrix e e :=
+ by
+ ext (i j)
+ rw [adjugate_apply, submatrix_apply, adjugate_apply, ← det_submatrix_equiv_self e,
+ update_row_submatrix_equiv]
+ congr
+ exact Function.update_comp_equiv _ e.symm _ _
+#align matrix.adjugate_submatrix_equiv_self Matrix.adjugate_submatrix_equiv_self
+
+theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
+ adjugate (reindex e e A) = reindex e e (adjugate A) :=
+ adjugate_submatrix_equiv_self _ _
+#align matrix.adjugate_reindex Matrix.adjugate_reindex
+
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/06a655b5fcfbda03502f9158bbf6c0f1400886f9
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module linear_algebra.matrix.adjugate
-! leanprover-community/mathlib commit 0bd2ea37bcba5769e14866170f251c9bc64e35d7
+! leanprover-community/mathlib commit 55102fc1d7145d8453f6d35c56d0af6f669f7d12
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -198,19 +198,17 @@ These will hold for any matrix over a commutative ring.
matrix replacing a column with a basis vector, since it allows us to use
facts about the `cramer` map.
-/
-def adjugate (A : Matrix n n α) : Matrix n n α := fun i => cramer Aᵀ (Pi.single i 1)
+def adjugate (A : Matrix n n α) : Matrix n n α :=
+ of fun i => cramer Aᵀ (Pi.single i 1)
#align matrix.adjugate Matrix.adjugate
-theorem adjugate_def (A : Matrix n n α) : adjugate A = fun i => cramer Aᵀ (Pi.single i 1) :=
+theorem adjugate_def (A : Matrix n n α) : adjugate A = of fun i => cramer Aᵀ (Pi.single i 1) :=
rfl
#align matrix.adjugate_def Matrix.adjugate_def
theorem adjugate_apply (A : Matrix n n α) (i j : n) :
- adjugate A i j = (A.updateRow j (Pi.single i 1)).det :=
- by
- rw [adjugate_def]
- simp only
- rw [cramer_apply, update_column_transpose, det_transpose]
+ adjugate A i j = (A.updateRow j (Pi.single i 1)).det := by
+ rw [adjugate_def, of_apply, cramer_apply, update_column_transpose, det_transpose]
#align matrix.adjugate_apply Matrix.adjugate_apply
theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ :=
@@ -331,7 +329,7 @@ theorem adjugate_diagonal (v : n → α) :
adjugate (diagonal v) = diagonal fun i => ∏ j in Finset.univ.eraseₓ i, v j :=
by
ext
- simp only [adjugate_def, cramer_apply, diagonal_transpose]
+ simp only [adjugate_def, cramer_apply, diagonal_transpose, of_apply]
obtain rfl | hij := eq_or_ne i j
·
rw [diagonal_apply_eq, diagonal_update_column_single, det_diagonal,
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -402,13 +402,13 @@ theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
ext (i j)
rw [adjugate_apply, det_fin_two]
fin_cases i <;> fin_cases j <;>
- simp only [one_mul, Fin.one_eq_zero_iff, Pi.single_eq_same, mul_zero, sub_zero,
+ simp only [one_mul, Fin.one_eq_zero_iff, Pi.single_eq_same, MulZeroClass.mul_zero, sub_zero,
Pi.single_eq_of_ne, Ne.def, not_false_iff, update_row_self, update_row_ne, cons_val_zero,
of_apply, Nat.succ_succ_ne_one, Pi.single_eq_of_ne, update_row_self, Pi.single_eq_of_ne,
Ne.def, Fin.zero_eq_one_iff, Nat.succ_succ_ne_one, not_false_iff, update_row_ne,
- Fin.one_eq_zero_iff, zero_mul, Pi.single_eq_same, one_mul, zero_sub, of_apply, cons_val',
- cons_val_fin_one, cons_val_one, head_fin_const, neg_inj, eq_self_iff_true, cons_val_zero,
- head_cons, mul_one]
+ Fin.one_eq_zero_iff, MulZeroClass.zero_mul, Pi.single_eq_same, one_mul, zero_sub, of_apply,
+ cons_val', cons_val_fin_one, cons_val_one, head_fin_const, neg_inj, eq_self_iff_true,
+ cons_val_zero, head_cons, mul_one]
#align matrix.adjugate_fin_two Matrix.adjugate_fin_two
/- ./././Mathport/Syntax/Translate/Expr.lean:207:4: warning: unsupported notation `«expr!![ » -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -461,7 +461,7 @@ theorem adjugate_mul_distrib_aux (A B : Matrix n n α) (hA : IsLeftRegular A.det
-/
theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjugate B ⬝ adjugate A :=
by
- let g : Matrix n n α → Matrix n n α[X] := fun M => M.map Polynomial.c + (Polynomial.x : α[X]) • 1
+ let g : Matrix n n α → Matrix n n α[X] := fun M => M.map Polynomial.C + (Polynomial.X : α[X]) • 1
let f' : Matrix n n α[X] →+* Matrix n n α := (Polynomial.evalRingHom 0).mapMatrix
have f'_inv : ∀ M, f' (g M) = M := by
intro
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -393,11 +393,11 @@ theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
#align matrix.adjugate_fin_one Matrix.adjugate_fin_one
/- ./././Mathport/Syntax/Translate/Expr.lean:207:4: warning: unsupported notation `«expr!![ » -/
-/- ./././Mathport/Syntax/Translate/Expr.lean:391:14: unsupported user notation matrix.notation -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation -/
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
adjugate A =
«expr!![ »
- "./././Mathport/Syntax/Translate/Expr.lean:391:14: unsupported user notation matrix.notation" :=
+ "./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation" :=
by
ext (i j)
rw [adjugate_apply, det_fin_two]
@@ -412,16 +412,16 @@ theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
#align matrix.adjugate_fin_two Matrix.adjugate_fin_two
/- ./././Mathport/Syntax/Translate/Expr.lean:207:4: warning: unsupported notation `«expr!![ » -/
-/- ./././Mathport/Syntax/Translate/Expr.lean:391:14: unsupported user notation matrix.notation -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation -/
/- ./././Mathport/Syntax/Translate/Expr.lean:207:4: warning: unsupported notation `«expr!![ » -/
-/- ./././Mathport/Syntax/Translate/Expr.lean:391:14: unsupported user notation matrix.notation -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation -/
@[simp]
theorem adjugate_fin_two_of (a b c d : α) :
adjugate
(«expr!![ »
- "./././Mathport/Syntax/Translate/Expr.lean:391:14: unsupported user notation matrix.notation") =
+ "./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation") =
«expr!![ »
- "./././Mathport/Syntax/Translate/Expr.lean:391:14: unsupported user notation matrix.notation" :=
+ "./././Mathport/Syntax/Translate/Expr.lean:387:14: unsupported user notation matrix.notation" :=
adjugate_fin_two _
#align matrix.adjugate_fin_two_of Matrix.adjugate_fin_two_of
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -510,7 +510,7 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A * B) = adjugate
have hu : ∀ M : Matrix n n α, IsRegular (g M).det := by
intro M
refine' Polynomial.Monic.isRegular _
- simp only [g, Polynomial.Monic.def', ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
+ simp only [g, Polynomial.Monic.def, ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
rw [← f'_adj, ← f'_adj, ← f'_adj, ← f'.map_mul, ←
adjugate_mul_distrib_aux _ _ (hu A).left (hu B).left, RingHom.map_adjugate,
RingHom.map_adjugate, f'_inv, f'_g_mul]
We change the following field in the definition of an additive commutative monoid:
nsmul_succ : ∀ (n : ℕ) (x : G),
- AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+ AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
where the latter is more natural
We adjust the definitions of ^
in monoids, groups, etc.
Originally there was a warning comment about why this natural order was preferred
use
x * npowRec n x
and notnpowRec n x * x
in the definition to make sure that definitional unfolding ofnpowRec
is blocked, to avoid deep recursion issues.
but it seems to no longer apply.
Remarks on the PR :
pow_succ
and pow_succ'
have switched their meanings.Ideal.IsPrime.mul_mem_pow
which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul
.@@ -385,7 +385,7 @@ theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.c
calc
A'.det * A'.adjugate.det = (A' * adjugate A').det := (det_mul _ _).symm
_ = A'.det ^ Fintype.card n := by rw [mul_adjugate, det_smul, det_one, mul_one]
- _ = A'.det * A'.det ^ (Fintype.card n - 1) := by rw [← pow_succ, h_card]
+ _ = A'.det * A'.det ^ (Fintype.card n - 1) := by rw [← pow_succ', h_card]
#align matrix.det_adjugate Matrix.det_adjugate
@[simp]
@@ -554,7 +554,7 @@ theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
mul_left_cancel₀ (det_mvPolynomialX_ne_zero n ℤ)
apply is_reg.matrix
simp only
- rw [smul_smul, ← pow_succ, h_card', det_smul_adjugate_adjugate]
+ rw [smul_smul, ← pow_succ', h_card', det_smul_adjugate_adjugate]
#align matrix.adjugate_adjugate Matrix.adjugate_adjugate
/-- A weaker version of `Matrix.adjugate_adjugate` that uses `Nontrivial`. -/
@@ -510,7 +510,7 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A * B) = adjugate
have hu : ∀ M : Matrix n n α, IsRegular (g M).det := by
intro M
refine' Polynomial.Monic.isRegular _
- simp only [g, Polynomial.Monic.def, ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
+ simp only [g, Polynomial.Monic.def', ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
rw [← f'_adj, ← f'_adj, ← f'_adj, ← f'.map_mul, ←
adjugate_mul_distrib_aux _ _ (hu A).left (hu B).left, RingHom.map_adjugate,
RingHom.map_adjugate, f'_inv, f'_g_mul]
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -47,7 +47,6 @@ namespace Matrix
universe u v w
variable {m : Type u} {n : Type v} {α : Type w}
-
variable [DecidableEq n] [Fintype n] [DecidableEq m] [Fintype m] [CommRing α]
open Matrix BigOperators Polynomial Equiv Equiv.Perm Finset
This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0
branch as we update to intermediate nightlies.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>
@@ -448,7 +448,7 @@ theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
obtain ⟨e⟩ := Fintype.truncEquivFinOfCardEq hn'
let A' := reindex e e A
suffices det A' = ∑ j : Fin n'.succ, A' (e i) j * adjugate A' j (e i) by
- simp_rw [det_reindex_self, adjugate_reindex, reindex_apply, submatrix_apply, ← e.sum_comp,
+ simp_rw [A', det_reindex_self, adjugate_reindex, reindex_apply, submatrix_apply, ← e.sum_comp,
Equiv.symm_apply_apply] at this
exact this
rw [det_succ_row A' (e i)]
@@ -418,6 +418,28 @@ theorem adjugate_fin_two_of (a b c d : α) : adjugate !![a, b; c, d] = !![d, -b;
adjugate_fin_two _
#align matrix.adjugate_fin_two_of Matrix.adjugate_fin_two_of
+theorem adjugate_fin_three (A : Matrix (Fin 3) (Fin 3) α) :
+ adjugate A =
+ !![A 1 1 * A 2 2 - A 1 2 * A 2 1,
+ -(A 0 1 * A 2 2) + A 0 2 * A 2 1,
+ A 0 1 * A 1 2 - A 0 2 * A 1 1;
+ -(A 1 0 * A 2 2) + A 1 2 * A 2 0,
+ A 0 0 * A 2 2 - A 0 2 * A 2 0,
+ -(A 0 0 * A 1 2) + A 0 2 * A 1 0;
+ A 1 0 * A 2 1 - A 1 1 * A 2 0,
+ -(A 0 0 * A 2 1) + A 0 1 * A 2 0,
+ A 0 0 * A 1 1 - A 0 1 * A 1 0] := by
+ ext i j
+ rw [adjugate_fin_succ_eq_det_submatrix, det_fin_two]
+ fin_cases i <;> fin_cases j <;> simp [updateRow, Fin.succAbove, Fin.lt_def] <;> ring
+
+@[simp]
+theorem adjugate_fin_three_of (a b c d e f g h i : α) :
+ adjugate !![a, b, c; d, e, f; g, h, i] =
+ !![ e * i - f * h, -(b * i) + c * h, b * f - c * e;
+ -(d * i) + f * g, a * i - c * g, -(a * f) + c * d;
+ d * h - e * g, -(a * h) + b * g, a * e - b * d] :=
+ adjugate_fin_three _
theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
det A = ∑ j : n, A i j * adjugate A j i := by
@@ -399,18 +399,18 @@ theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
adjugate_subsingleton A
#align matrix.adjugate_fin_one Matrix.adjugate_fin_one
+theorem adjugate_fin_succ_eq_det_submatrix {n : ℕ} (A : Matrix (Fin n.succ) (Fin n.succ) α) (i j) :
+ adjugate A i j = (-1) ^ (j + i : ℕ) * det (A.submatrix j.succAbove i.succAbove) := by
+ simp_rw [adjugate_apply, det_succ_row _ j, updateRow_self, submatrix_updateRow_succAbove]
+ rw [Fintype.sum_eq_single i fun h hjk => ?_, Pi.single_eq_same, mul_one]
+ rw [Pi.single_eq_of_ne hjk, mul_zero, zero_mul]
+#align matrix.adjugate_fin_succ_eq_det_submatrix Matrix.adjugate_fin_succ_eq_det_submatrix
+
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
adjugate A = !![A 1 1, -A 0 1; -A 1 0, A 0 0] := by
ext i j
- rw [adjugate_apply, det_fin_two]
- fin_cases i <;> fin_cases j <;>
- simp [one_mul, Fin.one_eq_zero_iff, Pi.single_eq_same, mul_zero, sub_zero,
- Pi.single_eq_of_ne, Ne.def, not_false_iff, updateRow_self, updateRow_ne, cons_val_zero,
- of_apply, Nat.succ_succ_ne_one, Pi.single_eq_of_ne, updateRow_self, Pi.single_eq_of_ne,
- Ne.def, Fin.zero_eq_one_iff, Nat.succ_succ_ne_one, not_false_iff, updateRow_ne,
- Fin.one_eq_zero_iff, zero_mul, Pi.single_eq_same, one_mul, zero_sub, of_apply,
- cons_val', cons_val_fin_one, cons_val_one, head_fin_const, neg_inj, eq_self_iff_true,
- cons_val_zero, head_cons, mul_one]
+ rw [adjugate_fin_succ_eq_det_submatrix]
+ fin_cases i <;> fin_cases j <;> simp
#align matrix.adjugate_fin_two Matrix.adjugate_fin_two
@[simp]
@@ -418,12 +418,6 @@ theorem adjugate_fin_two_of (a b c d : α) : adjugate !![a, b; c, d] = !![d, -b;
adjugate_fin_two _
#align matrix.adjugate_fin_two_of Matrix.adjugate_fin_two_of
-theorem adjugate_fin_succ_eq_det_submatrix {n : ℕ} (A : Matrix (Fin n.succ) (Fin n.succ) α) (i j) :
- adjugate A i j = (-1) ^ (j + i : ℕ) * det (A.submatrix j.succAbove i.succAbove) := by
- simp_rw [adjugate_apply, det_succ_row _ j, updateRow_self, submatrix_updateRow_succAbove]
- rw [Fintype.sum_eq_single i fun h hjk => ?_, Pi.single_eq_same, mul_one]
- rw [Pi.single_eq_of_ne hjk, mul_zero, zero_mul]
-#align matrix.adjugate_fin_succ_eq_det_submatrix Matrix.adjugate_fin_succ_eq_det_submatrix
theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
det A = ∑ j : n, A i j * adjugate A j i := by
@@ -485,7 +485,7 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A * B) = adjugate
have f'_inv : ∀ M, f' (g M) = M := by
intro
ext
- simp
+ simp [f', g]
have f'_adj : ∀ M : Matrix n n α, f' (adjugate (g M)) = adjugate M := by
intro
rw [RingHom.map_adjugate, f'_inv]
@@ -495,7 +495,7 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A * B) = adjugate
have hu : ∀ M : Matrix n n α, IsRegular (g M).det := by
intro M
refine' Polynomial.Monic.isRegular _
- simp only [Polynomial.Monic.def, ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
+ simp only [g, Polynomial.Monic.def, ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
rw [← f'_adj, ← f'_adj, ← f'_adj, ← f'.map_mul, ←
adjugate_mul_distrib_aux _ _ (hu A).left (hu B).left, RingHom.map_adjugate,
RingHom.map_adjugate, f'_inv, f'_g_mul]
Matrix.mulVec
and Matrix.vecMul
get infix notation (#10297)
Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Notation.20for.20mul_vec.20and.20vec_mul
Co-authored-by: Martin Dvorak <mdvorak@ista.ac.at>
@@ -266,7 +266,7 @@ theorem adjugate_reindex (e : m ≃ n) (A : Matrix m m α) :
/-- Since the map `b ↦ cramer A b` is linear in `b`, it must be multiplication by some matrix. This
matrix is `A.adjugate`. -/
theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
- cramer A b = A.adjugate.mulVec b := by
+ cramer A b = A.adjugate *ᵥ b := by
nth_rw 2 [← A.transpose_transpose]
rw [← adjugate_transpose, adjugate_def]
have : b = ∑ i, b i • Pi.single i 1 := by
@@ -309,7 +309,7 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
divides `b`. -/
@[simp]
-theorem mulVec_cramer (A : Matrix n n α) (b : n → α) : A.mulVec (cramer A b) = A.det • b := by
+theorem mulVec_cramer (A : Matrix n n α) (b : n → α) : A *ᵥ cramer A b = A.det • b := by
rw [cramer_eq_adjugate_mulVec, mulVec_mulVec, mul_adjugate, smul_mulVec_assoc, one_mulVec]
#align matrix.mul_vec_cramer Matrix.mulVec_cramer
cases'
(#9171)
I literally went through and regex'd some uses of cases'
, replacing them with rcases
; this is meant to be a low effort PR as I hope that tools can do this in the future.
rcases
is an easier replacement than cases
, though with better tools we could in future do a second pass converting simple rcases
added here (and existing ones) to cases
.
@@ -372,7 +372,7 @@ theorem _root_.AlgHom.map_adjugate {R A B : Type*} [CommSemiring R] [CommRing A]
theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.card n - 1) := by
-- get rid of the `- 1`
- cases' (Fintype.card n).eq_zero_or_pos with h_card h_card
+ rcases (Fintype.card n).eq_zero_or_pos with h_card | h_card
· haveI : IsEmpty n := Fintype.card_eq_zero_iff.mp h_card
rw [h_card, Nat.zero_sub, pow_zero, adjugate_subsingleton, det_one]
replace h_card := tsub_add_cancel_of_le h_card.nat_succ_le
I've also got a change to make this required, but I'd like to land this first.
@@ -223,7 +223,7 @@ theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ
apply Finset.sum_congr rfl
intro σ _
congr 1
- by_cases i = σ j
+ by_cases h : i = σ j
· -- Everything except `(i , j)` (= `(σ j , j)`) is given by A, and the rest is a single `1`.
congr
ext j'
@@ -277,7 +277,7 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
conv_lhs =>
rw [this]
ext k
- simp [mulVec, dotProduct, mul_comm, map_sum]
+ simp [mulVec, dotProduct, mul_comm]
#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVec
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
Note that _root_.map_sum
is not marked as @[simp]
.
@@ -277,7 +277,7 @@ theorem cramer_eq_adjugate_mulVec (A : Matrix n n α) (b : n → α) :
conv_lhs =>
rw [this]
ext k
- simp [mulVec, dotProduct, mul_comm]
+ simp [mulVec, dotProduct, mul_comm, map_sum]
#align matrix.cramer_eq_adjugate_mul_vec Matrix.cramer_eq_adjugate_mulVec
theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
_root_.map_sum
more consistently (#7189)
Also _root_.map_smul
when in the neighbourhood.
@@ -154,7 +154,7 @@ theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 := by
/-- Use linearity of `cramer` to take it out of a summation. -/
theorem sum_cramer {β} (s : Finset β) (f : β → n → α) :
(∑ x in s, cramer A (f x)) = cramer A (∑ x in s, f x) :=
- (LinearMap.map_sum (cramer A)).symm
+ (map_sum (cramer A) ..).symm
#align matrix.sum_cramer Matrix.sum_cramer
/-- Use linearity of `cramer` and vector evaluation to take `cramer A _ i` out of a summation. -/
MulZeroClass.
in mul_zero
/zero_mul
(#6682)
Search&replace MulZeroClass.mul_zero
-> mul_zero
, MulZeroClass.zero_mul
-> zero_mul
.
These were introduced by Mathport, as the full name of mul_zero
is actually MulZeroClass.mul_zero
(it's exported with the short name).
@@ -404,11 +404,11 @@ theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
ext i j
rw [adjugate_apply, det_fin_two]
fin_cases i <;> fin_cases j <;>
- simp [one_mul, Fin.one_eq_zero_iff, Pi.single_eq_same, MulZeroClass.mul_zero, sub_zero,
+ simp [one_mul, Fin.one_eq_zero_iff, Pi.single_eq_same, mul_zero, sub_zero,
Pi.single_eq_of_ne, Ne.def, not_false_iff, updateRow_self, updateRow_ne, cons_val_zero,
of_apply, Nat.succ_succ_ne_one, Pi.single_eq_of_ne, updateRow_self, Pi.single_eq_of_ne,
Ne.def, Fin.zero_eq_one_iff, Nat.succ_succ_ne_one, not_false_iff, updateRow_ne,
- Fin.one_eq_zero_iff, MulZeroClass.zero_mul, Pi.single_eq_same, one_mul, zero_sub, of_apply,
+ Fin.one_eq_zero_iff, zero_mul, Pi.single_eq_same, one_mul, zero_sub, of_apply,
cons_val', cons_val_fin_one, cons_val_one, head_fin_const, neg_inj, eq_self_iff_true,
cons_val_zero, head_cons, mul_one]
#align matrix.adjugate_fin_two Matrix.adjugate_fin_two
@@ -422,7 +422,7 @@ theorem adjugate_fin_succ_eq_det_submatrix {n : ℕ} (A : Matrix (Fin n.succ) (F
adjugate A i j = (-1) ^ (j + i : ℕ) * det (A.submatrix j.succAbove i.succAbove) := by
simp_rw [adjugate_apply, det_succ_row _ j, updateRow_self, submatrix_updateRow_succAbove]
rw [Fintype.sum_eq_single i fun h hjk => ?_, Pi.single_eq_same, mul_one]
- rw [Pi.single_eq_of_ne hjk, MulZeroClass.mul_zero, MulZeroClass.zero_mul]
+ rw [Pi.single_eq_of_ne hjk, mul_zero, zero_mul]
#align matrix.adjugate_fin_succ_eq_det_submatrix Matrix.adjugate_fin_succ_eq_det_submatrix
theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
⬝
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).
@@ -68,7 +68,7 @@ variable (A : Matrix n n α) (b : n → α)
/-- `cramerMap A b i` is the determinant of the matrix `A` with column `i` replaced with `b`,
and thus `cramerMap A b` is the vector output by Cramer's rule on `A` and `b`.
- If `A ⬝ x = b` has a unique solution in `x`, `cramerMap A` sends the vector `b` to `A.det • x`.
+ If `A * x = b` has a unique solution in `x`, `cramerMap A` sends the vector `b` to `A.det • x`.
Otherwise, the outcome of `cramerMap` is well-defined but not necessarily useful.
-/
def cramerMap (i : n) : α :=
@@ -89,7 +89,7 @@ theorem cramer_is_linear : IsLinearMap α (cramerMap A) := by
/-- `cramer A b i` is the determinant of the matrix `A` with column `i` replaced with `b`,
and thus `cramer A b` is the vector output by Cramer's rule on `A` and `b`.
- If `A ⬝ x = b` has a unique solution in `x`, `cramer A` sends the vector `b` to `A.det • x`.
+ If `A * x = b` has a unique solution in `x`, `cramer A` sends the vector `b` to `A.det • x`.
Otherwise, the outcome of `cramer` is well-defined but not necessarily useful.
-/
def cramer (A : Matrix n n α) : (n → α) →ₗ[α] (n → α) :=
@@ -286,15 +286,15 @@ theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
smul_eq_mul, mul_one]
#align matrix.mul_adjugate_apply Matrix.mul_adjugate_apply
-theorem mul_adjugate (A : Matrix n n α) : A ⬝ adjugate A = A.det • (1 : Matrix n n α) := by
+theorem mul_adjugate (A : Matrix n n α) : A * adjugate A = A.det • (1 : Matrix n n α) := by
ext i j
rw [mul_apply, Pi.smul_apply, Pi.smul_apply, one_apply, smul_eq_mul, mul_boole]
simp [mul_adjugate_apply, sum_cramer_apply, cramer_transpose_row_self, Pi.single_apply, eq_comm]
#align matrix.mul_adjugate Matrix.mul_adjugate
-theorem adjugate_mul (A : Matrix n n α) : adjugate A ⬝ A = A.det • (1 : Matrix n n α) :=
+theorem adjugate_mul (A : Matrix n n α) : adjugate A * A = A.det • (1 : Matrix n n α) :=
calc
- adjugate A ⬝ A = (Aᵀ ⬝ adjugate Aᵀ)ᵀ := by
+ adjugate A * A = (Aᵀ * adjugate Aᵀ)ᵀ := by
rw [← adjugate_transpose, ← transpose_mul, transpose_transpose]
_ = _ := by rw [mul_adjugate Aᵀ, det_transpose, transpose_smul, transpose_one]
#align matrix.adjugate_mul Matrix.adjugate_mul
@@ -305,7 +305,7 @@ theorem adjugate_smul (r : α) (A : Matrix n n α) :
rfl
#align matrix.adjugate_smul Matrix.adjugate_smul
-/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A ⬝ x = b` even
+/-- A stronger form of **Cramer's rule** that allows us to solve some instances of `A * x = b` even
if the determinant is not a unit. A sufficient (but still not necessary) condition is that `A.det`
divides `b`. -/
@[simp]
@@ -384,7 +384,7 @@ theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.c
AlgHom.map_det, ← AlgHom.map_pow, this]
apply mul_left_cancel₀ (show A'.det ≠ 0 from det_mvPolynomialX_ne_zero n ℤ)
calc
- A'.det * A'.adjugate.det = (A' ⬝ adjugate A').det := (det_mul _ _).symm
+ A'.det * A'.adjugate.det = (A' * adjugate A').det := (det_mul _ _).symm
_ = A'.det ^ Fintype.card n := by rw [mul_adjugate, det_smul, det_one, mul_one]
_ = A'.det * A'.det ^ (Fintype.card n - 1) := by rw [← pow_succ, h_card]
#align matrix.det_adjugate Matrix.det_adjugate
@@ -457,9 +457,8 @@ theorem isRegular_of_isLeftRegular_det {A : Matrix n n α} (hA : IsLeftRegular A
refine' hA.matrix _
simp only at h ⊢
rw [← Matrix.one_mul B, ← Matrix.one_mul C, ← Matrix.smul_mul, ← Matrix.smul_mul, ←
- adjugate_mul, Matrix.mul_assoc, Matrix.mul_assoc, ← mul_eq_mul A, h, mul_eq_mul]
- · intro B C h
- simp only [mul_eq_mul] at h
+ adjugate_mul, Matrix.mul_assoc, Matrix.mul_assoc, h]
+ · intro B C (h : B * A = C * A)
refine' hA.matrix _
simp only
rw [← Matrix.mul_one B, ← Matrix.mul_one C, ← Matrix.mul_smul, ← Matrix.mul_smul, ←
@@ -467,19 +466,19 @@ theorem isRegular_of_isLeftRegular_det {A : Matrix n n α} (hA : IsLeftRegular A
#align matrix.is_regular_of_is_left_regular_det Matrix.isRegular_of_isLeftRegular_det
theorem adjugate_mul_distrib_aux (A B : Matrix n n α) (hA : IsLeftRegular A.det)
- (hB : IsLeftRegular B.det) : adjugate (A ⬝ B) = adjugate B ⬝ adjugate A := by
- have hAB : IsLeftRegular (A ⬝ B).det := by
+ (hB : IsLeftRegular B.det) : adjugate (A * B) = adjugate B * adjugate A := by
+ have hAB : IsLeftRegular (A * B).det := by
rw [det_mul]
exact hA.mul hB
refine' (isRegular_of_isLeftRegular_det hAB).left _
simp only
- rw [mul_eq_mul, mul_adjugate, mul_eq_mul, Matrix.mul_assoc, ← Matrix.mul_assoc B, mul_adjugate,
+ rw [mul_adjugate, Matrix.mul_assoc, ← Matrix.mul_assoc B, mul_adjugate,
smul_mul, Matrix.one_mul, mul_smul, mul_adjugate, smul_smul, mul_comm, ← det_mul]
#align matrix.adjugate_mul_distrib_aux Matrix.adjugate_mul_distrib_aux
/-- Proof follows from "The trace Cayley-Hamilton theorem" by Darij Grinberg, Section 5.3
-/
-theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjugate B ⬝ adjugate A := by
+theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A * B) = adjugate B * adjugate A := by
let g : Matrix n n α → Matrix n n α[X] := fun M =>
M.map Polynomial.C + (Polynomial.X : α[X]) • (1 : Matrix n n α[X])
let f' : Matrix n n α[X] →+* Matrix n n α := (Polynomial.evalRingHom 0).mapMatrix
@@ -490,15 +489,14 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjuga
have f'_adj : ∀ M : Matrix n n α, f' (adjugate (g M)) = adjugate M := by
intro
rw [RingHom.map_adjugate, f'_inv]
- have f'_g_mul : ∀ M N : Matrix n n α, f' (g M ⬝ g N) = M ⬝ N := by
+ have f'_g_mul : ∀ M N : Matrix n n α, f' (g M * g N) = M * N := by
intros M N
- -- Porting note: needed to help the second `mul_eq_mul`
- rw [← mul_eq_mul, RingHom.map_mul, f'_inv, f'_inv, mul_eq_mul M N]
+ rw [RingHom.map_mul, f'_inv, f'_inv]
have hu : ∀ M : Matrix n n α, IsRegular (g M).det := by
intro M
refine' Polynomial.Monic.isRegular _
simp only [Polynomial.Monic.def, ← Polynomial.leadingCoeff_det_X_one_add_C M, add_comm]
- rw [← f'_adj, ← f'_adj, ← f'_adj, ← mul_eq_mul (f' (adjugate (g B))), ← f'.map_mul, mul_eq_mul, ←
+ rw [← f'_adj, ← f'_adj, ← f'_adj, ← f'.map_mul, ←
adjugate_mul_distrib_aux _ _ (hu A).left (hu B).left, RingHom.map_adjugate,
RingHom.map_adjugate, f'_inv, f'_g_mul]
#align matrix.adjugate_mul_distrib Matrix.adjugate_mul_distrib
@@ -507,13 +505,13 @@ theorem adjugate_mul_distrib (A B : Matrix n n α) : adjugate (A ⬝ B) = adjuga
theorem adjugate_pow (A : Matrix n n α) (k : ℕ) : adjugate (A ^ k) = adjugate A ^ k := by
induction' k with k IH
· simp
- · rw [pow_succ', mul_eq_mul, adjugate_mul_distrib, IH, ← mul_eq_mul, pow_succ]
+ · rw [pow_succ', adjugate_mul_distrib, IH, pow_succ]
#align matrix.adjugate_pow Matrix.adjugate_pow
theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
det A • adjugate (adjugate A) = det A ^ (Fintype.card n - 1) • A := by
- have : A ⬝ (A.adjugate ⬝ A.adjugate.adjugate) =
- A ⬝ (A.det ^ (Fintype.card n - 1) • (1 : Matrix n n α)) := by
+ have : A * (A.adjugate * A.adjugate.adjugate) =
+ A * (A.det ^ (Fintype.card n - 1) • (1 : Matrix n n α)) := by
rw [← adjugate_mul_distrib, adjugate_mul, adjugate_smul, adjugate_one]
rwa [← Matrix.mul_assoc, mul_adjugate, Matrix.mul_smul, Matrix.mul_one, Matrix.smul_mul,
Matrix.one_mul] at this
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -354,7 +354,7 @@ theorem adjugate_diagonal (v : n → α) :
· rw [updateColumn_ne hjk, diagonal_apply_ne' _ hjk]
#align matrix.adjugate_diagonal Matrix.adjugate_diagonal
-theorem _root_.RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →+* S)
+theorem _root_.RingHom.map_adjugate {R S : Type*} [CommRing R] [CommRing S] (f : R →+* S)
(M : Matrix n n R) : f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) := by
ext i k
have : Pi.single i (1 : S) = f ∘ Pi.single i 1 := by
@@ -364,7 +364,7 @@ theorem _root_.RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f
map_updateRow, ← RingHom.mapMatrix_apply, ← RingHom.map_det, ← adjugate_apply]
#align ring_hom.map_adjugate RingHom.map_adjugate
-theorem _root_.AlgHom.map_adjugate {R A B : Type _} [CommSemiring R] [CommRing A] [CommRing B]
+theorem _root_.AlgHom.map_adjugate {R A B : Type*} [CommSemiring R] [CommRing A] [CommRing B]
[Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (M : Matrix n n A) :
f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) :=
f.toRingHom.map_adjugate _
@@ -2,17 +2,14 @@
Copyright (c) 2019 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-
-! This file was ported from Lean 3 source module linear_algebra.matrix.adjugate
-! leanprover-community/mathlib commit a99f85220eaf38f14f94e04699943e185a5e1d1a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.Regular.Basic
import Mathlib.LinearAlgebra.Matrix.MvPolynomial
import Mathlib.LinearAlgebra.Matrix.Polynomial
import Mathlib.RingTheory.Polynomial.Basic
+#align_import linear_algebra.matrix.adjugate from "leanprover-community/mathlib"@"a99f85220eaf38f14f94e04699943e185a5e1d1a"
+
/-!
# Cramer's rule and adjugate matrices
This PR is the result of running
find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;
which firstly replaces .
focusing dots with ·
and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.
@@ -348,8 +348,7 @@ theorem adjugate_diagonal (v : n → α) :
ext i j
simp only [adjugate_def, cramer_apply, diagonal_transpose, of_apply]
obtain rfl | hij := eq_or_ne i j
- ·
- rw [diagonal_apply_eq, diagonal_updateColumn_single, det_diagonal,
+ · rw [diagonal_apply_eq, diagonal_updateColumn_single, det_diagonal,
prod_update_of_mem (Finset.mem_univ _), sdiff_singleton_eq_erase, one_mul]
· rw [diagonal_apply_ne _ hij]
refine' det_eq_zero_of_row_eq_zero j fun k => _
ext
(#5258)
Co-authored-by: Xavier Roblot <46200072+xroblot@users.noreply.github.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Pol'tta / Miyahara Kō <pol_tta@outlook.jp> Co-authored-by: Jason Yuen <jason_yuen2007@hotmail.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Jireh Loreaux <loreaujy@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com> Co-authored-by: Jujian Zhang <jujian.zhang1998@outlook.com> Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
@@ -147,7 +147,7 @@ theorem cramer_subsingleton_apply [Subsingleton n] (A : Matrix n n α) (b : n
#align matrix.cramer_subsingleton_apply Matrix.cramer_subsingleton_apply
theorem cramer_zero [Nontrivial n] : cramer (0 : Matrix n n α) = 0 := by
- ext (i j)
+ ext i j
obtain ⟨j', hj'⟩ : ∃ j', j' ≠ j := exists_ne j
apply det_eq_zero_of_column_eq_zero j'
intro j''
@@ -220,7 +220,7 @@ theorem adjugate_apply (A : Matrix n n α) (i j : n) :
#align matrix.adjugate_apply Matrix.adjugate_apply
theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ := by
- ext (i j)
+ ext i j
rw [transpose_apply, adjugate_apply, adjugate_apply, updateRow_transpose, det_transpose]
rw [det_apply', det_apply']
apply Finset.sum_congr rfl
@@ -252,7 +252,7 @@ theorem adjugate_transpose (A : Matrix n n α) : (adjugate A)ᵀ = adjugate Aᵀ
@[simp]
theorem adjugate_submatrix_equiv_self (e : n ≃ m) (A : Matrix m m α) :
adjugate (A.submatrix e e) = (adjugate A).submatrix e e := by
- ext (i j)
+ ext i j
rw [adjugate_apply, submatrix_apply, adjugate_apply, ← det_submatrix_equiv_self e,
updateRow_submatrix_equiv]
-- Porting note: added
@@ -290,7 +290,7 @@ theorem mul_adjugate_apply (A : Matrix n n α) (i j k) :
#align matrix.mul_adjugate_apply Matrix.mul_adjugate_apply
theorem mul_adjugate (A : Matrix n n α) : A ⬝ adjugate A = A.det • (1 : Matrix n n α) := by
- ext (i j)
+ ext i j
rw [mul_apply, Pi.smul_apply, Pi.smul_apply, one_apply, smul_eq_mul, mul_boole]
simp [mul_adjugate_apply, sum_cramer_apply, cramer_transpose_row_self, Pi.single_apply, eq_comm]
#align matrix.mul_adjugate Matrix.mul_adjugate
@@ -317,7 +317,7 @@ theorem mulVec_cramer (A : Matrix n n α) (b : n → α) : A.mulVec (cramer A b)
#align matrix.mul_vec_cramer Matrix.mulVec_cramer
theorem adjugate_subsingleton [Subsingleton n] (A : Matrix n n α) : adjugate A = 1 := by
- ext (i j)
+ ext i j
simp [Subsingleton.elim i j, adjugate_apply, det_eq_elem_of_subsingleton _ i]
#align matrix.adjugate_subsingleton Matrix.adjugate_subsingleton
@@ -329,7 +329,7 @@ theorem adjugate_eq_one_of_card_eq_one {A : Matrix n n α} (h : Fintype.card n =
@[simp]
theorem adjugate_zero [Nontrivial n] : adjugate (0 : Matrix n n α) = 0 := by
- ext (i j)
+ ext i j
obtain ⟨j', hj'⟩ : ∃ j', j' ≠ j := exists_ne j
apply det_eq_zero_of_column_eq_zero j'
intro j''
@@ -360,7 +360,7 @@ theorem adjugate_diagonal (v : n → α) :
theorem _root_.RingHom.map_adjugate {R S : Type _} [CommRing R] [CommRing S] (f : R →+* S)
(M : Matrix n n R) : f.mapMatrix M.adjugate = Matrix.adjugate (f.mapMatrix M) := by
- ext (i k)
+ ext i k
have : Pi.single i (1 : S) = f ∘ Pi.single i 1 := by
rw [← f.map_one]
exact Pi.single_op (fun _ => f) (fun _ => f.map_zero) i (1 : R)
@@ -405,7 +405,7 @@ theorem adjugate_fin_one (A : Matrix (Fin 1) (Fin 1) α) : adjugate A = 1 :=
theorem adjugate_fin_two (A : Matrix (Fin 2) (Fin 2) α) :
adjugate A = !![A 1 1, -A 0 1; -A 1 0, A 0 0] := by
- ext (i j)
+ ext i j
rw [adjugate_apply, det_fin_two]
fin_cases i <;> fin_cases j <;>
simp [one_mul, Fin.one_eq_zero_iff, Pi.single_eq_same, MulZeroClass.mul_zero, sub_zero,
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module linear_algebra.matrix.adjugate
-! leanprover-community/mathlib commit 0e2aab2b0d521f060f62a14d2cf2e2c54e8491d6
+! leanprover-community/mathlib commit a99f85220eaf38f14f94e04699943e185a5e1d1a
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -422,6 +422,32 @@ theorem adjugate_fin_two_of (a b c d : α) : adjugate !![a, b; c, d] = !![d, -b;
adjugate_fin_two _
#align matrix.adjugate_fin_two_of Matrix.adjugate_fin_two_of
+theorem adjugate_fin_succ_eq_det_submatrix {n : ℕ} (A : Matrix (Fin n.succ) (Fin n.succ) α) (i j) :
+ adjugate A i j = (-1) ^ (j + i : ℕ) * det (A.submatrix j.succAbove i.succAbove) := by
+ simp_rw [adjugate_apply, det_succ_row _ j, updateRow_self, submatrix_updateRow_succAbove]
+ rw [Fintype.sum_eq_single i fun h hjk => ?_, Pi.single_eq_same, mul_one]
+ rw [Pi.single_eq_of_ne hjk, MulZeroClass.mul_zero, MulZeroClass.zero_mul]
+#align matrix.adjugate_fin_succ_eq_det_submatrix Matrix.adjugate_fin_succ_eq_det_submatrix
+
+theorem det_eq_sum_mul_adjugate_row (A : Matrix n n α) (i : n) :
+ det A = ∑ j : n, A i j * adjugate A j i := by
+ haveI : Nonempty n := ⟨i⟩
+ obtain ⟨n', hn'⟩ := Nat.exists_eq_succ_of_ne_zero (Fintype.card_ne_zero : Fintype.card n ≠ 0)
+ obtain ⟨e⟩ := Fintype.truncEquivFinOfCardEq hn'
+ let A' := reindex e e A
+ suffices det A' = ∑ j : Fin n'.succ, A' (e i) j * adjugate A' j (e i) by
+ simp_rw [det_reindex_self, adjugate_reindex, reindex_apply, submatrix_apply, ← e.sum_comp,
+ Equiv.symm_apply_apply] at this
+ exact this
+ rw [det_succ_row A' (e i)]
+ simp_rw [mul_assoc, mul_left_comm _ (A' _ _), ← adjugate_fin_succ_eq_det_submatrix]
+#align matrix.det_eq_sum_mul_adjugate_row Matrix.det_eq_sum_mul_adjugate_row
+
+theorem det_eq_sum_mul_adjugate_col (A : Matrix n n α) (j : n) :
+ det A = ∑ i : n, A i j * adjugate A j i := by
+ simpa only [det_transpose, ← adjugate_transpose] using det_eq_sum_mul_adjugate_row Aᵀ j
+#align matrix.det_eq_sum_mul_adjugate_col Matrix.det_eq_sum_mul_adjugate_col
+
theorem adjugate_conjTranspose [StarRing α] (A : Matrix n n α) : A.adjugateᴴ = adjugate Aᴴ := by
dsimp only [conjTranspose]
have : Aᵀ.adjugate.map star = adjugate (Aᵀ.map star) := (starRingEnd α).map_adjugate Aᵀ
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>
@@ -45,9 +45,6 @@ cramer, cramer's rule, adjugate
-/
--- Porting note: needed to make `cramer` function application work
-set_option synthInstance.etaExperiment true
-
namespace Matrix
universe u v w
@@ -377,8 +374,6 @@ theorem _root_.AlgHom.map_adjugate {R A B : Type _} [CommSemiring R] [CommRing A
f.toRingHom.map_adjugate _
#align alg_hom.map_adjugate AlgHom.map_adjugate
-set_option synthInstance.maxHeartbeats 300000 in
-set_option maxHeartbeats 300000 in
theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.card n - 1) := by
-- get rid of the `- 1`
cases' (Fintype.card n).eq_zero_or_pos with h_card h_card
@@ -502,9 +497,6 @@ theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
Matrix.one_mul] at this
#align matrix.det_smul_adjugate_adjugate Matrix.det_smul_adjugate_adjugate
--- Porting note: rewrites are slow.
-set_option maxHeartbeats 400000 in
-set_option synthInstance.maxHeartbeats 300000 in
/-- Note that this is not true for `Fintype.card n = 1` since `1 - 2 = 0` and not `-1`. -/
theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
adjugate (adjugate A) = det A ^ (Fintype.card n - 2) • A := by
We make sure that the canonical path from NonAssocSemiring
to Ring
passes through Semiring
,
as this is a path which is followed all the time in linear algebra where the defining semilinear map
σ : R →+* S
depends on the NonAssocSemiring
structure of R
and S
while the module
definition depends on the Semiring
structure.
Tt is not currently possible to adjust priorities by hand (see lean4#2115). Instead, the last
declared instance is used, so we make sure that Semiring
is declared after NonAssocRing
, so
that Semiring -> NonAssocSemiring
is tried before NonAssocRing -> NonAssocSemiring
.
@@ -377,6 +377,8 @@ theorem _root_.AlgHom.map_adjugate {R A B : Type _} [CommSemiring R] [CommRing A
f.toRingHom.map_adjugate _
#align alg_hom.map_adjugate AlgHom.map_adjugate
+set_option synthInstance.maxHeartbeats 300000 in
+set_option maxHeartbeats 300000 in
theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.card n - 1) := by
-- get rid of the `- 1`
cases' (Fintype.card n).eq_zero_or_pos with h_card h_card
@@ -501,7 +503,8 @@ theorem det_smul_adjugate_adjugate (A : Matrix n n α) :
#align matrix.det_smul_adjugate_adjugate Matrix.det_smul_adjugate_adjugate
-- Porting note: rewrites are slow.
-set_option maxHeartbeats 300000 in
+set_option maxHeartbeats 400000 in
+set_option synthInstance.maxHeartbeats 300000 in
/-- Note that this is not true for `Fintype.card n = 1` since `1 - 2 = 0` and not `-1`. -/
theorem adjugate_adjugate (A : Matrix n n α) (h : Fintype.card n ≠ 1) :
adjugate (adjugate A) = det A ^ (Fintype.card n - 2) • A := by
This PR fixes two things:
align
statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align
). This is often seen in the mathport output after ending calc
blocks.#align
statements. (This was needed for a script I wrote for #3630.)@@ -175,7 +175,6 @@ theorem sum_cramer_apply {β} (s : Finset β) (f : n → β → α) (i : n) :
congr with j
congr
apply Finset.sum_apply
-
#align matrix.sum_cramer_apply Matrix.sum_cramer_apply
theorem cramer_submatrix_equiv (A : Matrix m m α) (e : n ≃ m) (b : n → α) :
@@ -304,7 +303,6 @@ theorem adjugate_mul (A : Matrix n n α) : adjugate A ⬝ A = A.det • (1 : Mat
adjugate A ⬝ A = (Aᵀ ⬝ adjugate Aᵀ)ᵀ := by
rw [← adjugate_transpose, ← transpose_mul, transpose_transpose]
_ = _ := by rw [mul_adjugate Aᵀ, det_transpose, transpose_smul, transpose_one]
-
#align matrix.adjugate_mul Matrix.adjugate_mul
theorem adjugate_smul (r : α) (A : Matrix n n α) :
@@ -396,7 +394,6 @@ theorem det_adjugate (A : Matrix n n α) : (adjugate A).det = A.det ^ (Fintype.c
A'.det * A'.adjugate.det = (A' ⬝ adjugate A').det := (det_mul _ _).symm
_ = A'.det ^ Fintype.card n := by rw [mul_adjugate, det_smul, det_one, mul_one]
_ = A'.det * A'.det ^ (Fintype.card n - 1) := by rw [← pow_succ, h_card]
-
#align matrix.det_adjugate Matrix.det_adjugate
@[simp]
The unported dependencies are