linear_algebra.affine_space.matrix
⟷
Mathlib.LinearAlgebra.AffineSpace.Matrix
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -163,7 +163,7 @@ theorem isUnit_toMatrix_iff [Nontrivial k] (p : ι → P) :
by
constructor
· rintro ⟨⟨B, A, hA, hA'⟩, rfl : B = b.to_matrix p⟩
- rw [Matrix.hMul_eq_hMul] at hA hA'
+ rw [Matrix.hMul_eq_hMul] at hA hA'
exact
⟨b.affine_independent_of_to_matrix_right_inv p hA,
b.affine_span_eq_top_of_to_matrix_left_inv p hA'⟩
@@ -191,7 +191,7 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
(b.toMatrix b₂)⁻¹.vecMul (b.coords x) = b₂.coords x :=
by
have hu := b.is_unit_to_matrix b₂
- rw [Matrix.isUnit_iff_isUnit_det] at hu
+ rw [Matrix.isUnit_iff_isUnit_det] at hu
rw [← b.to_matrix_vec_mul_coords b₂, Matrix.vecMul_vecMul, Matrix.mul_nonsing_inv _ hu,
Matrix.vecMul_one]
#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrix
@@ -204,7 +204,7 @@ theorem det_smul_coords_eq_cramer_coords (x : P) :
(b.toMatrix b₂).det • b₂.coords x = (b.toMatrix b₂)ᵀ.cramer (b.coords x) :=
by
have hu := b.is_unit_to_matrix b₂
- rw [Matrix.isUnit_iff_isUnit_det] at hu
+ rw [Matrix.isUnit_iff_isUnit_det] at hu
rw [← b.to_matrix_inv_vec_mul_to_matrix, Matrix.det_smul_inv_vecMul_eq_cramer_transpose _ _ hu]
#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coords
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2021 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-/
-import Mathbin.LinearAlgebra.AffineSpace.Basis
-import Mathbin.LinearAlgebra.Determinant
+import LinearAlgebra.AffineSpace.Basis
+import LinearAlgebra.Determinant
#align_import linear_algebra.affine_space.matrix from "leanprover-community/mathlib"@"fe8d0ff42c3c24d789f491dc2622b6cac3d61564"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -86,7 +86,7 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
finset.univ.map_affine_combination p w₁ hw₁, ← finset.univ.map_affine_combination p w₂ hw₂,
hweq]
replace hweq' := congr_arg (fun w => A.vec_mul w) hweq'
- simpa only [Matrix.vecMul_vecMul, ← Matrix.mul_eq_mul, hA, Matrix.vecMul_one] using hweq'
+ simpa only [Matrix.vecMul_vecMul, ← Matrix.hMul_eq_hMul, hA, Matrix.vecMul_one] using hweq'
#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_inv
-/
@@ -163,7 +163,7 @@ theorem isUnit_toMatrix_iff [Nontrivial k] (p : ι → P) :
by
constructor
· rintro ⟨⟨B, A, hA, hA'⟩, rfl : B = b.to_matrix p⟩
- rw [Matrix.mul_eq_mul] at hA hA'
+ rw [Matrix.hMul_eq_hMul] at hA hA'
exact
⟨b.affine_independent_of_to_matrix_right_inv p hA,
b.affine_span_eq_top_of_to_matrix_left_inv p hA'⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2021 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-
-! This file was ported from Lean 3 source module linear_algebra.affine_space.matrix
-! leanprover-community/mathlib commit fe8d0ff42c3c24d789f491dc2622b6cac3d61564
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.LinearAlgebra.AffineSpace.Basis
import Mathbin.LinearAlgebra.Determinant
+#align_import linear_algebra.affine_space.matrix from "leanprover-community/mathlib"@"fe8d0ff42c3c24d789f491dc2622b6cac3d61564"
+
/-!
# Matrix results for barycentric co-ordinates
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -59,7 +59,7 @@ theorem toMatrix_apply {ι' : Type _} (q : ι' → P) (i : ι') (j : ι) :
@[simp]
theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
by
- ext (i j)
+ ext i j
rw [to_matrix_apply, coord_apply, Matrix.one_eq_pi_single, Pi.single_apply]
#align affine_basis.to_matrix_self AffineBasis.toMatrix_self
-/
@@ -145,7 +145,7 @@ variable [DecidableEq ι]
#print AffineBasis.toMatrix_mul_toMatrix /-
theorem toMatrix_mul_toMatrix : b.toMatrix b₂ ⬝ b₂.toMatrix b = 1 :=
by
- ext (l m)
+ ext l m
change (b₂.to_matrix b).vecMul (b.coords (b₂ l)) m = _
rw [to_matrix_vec_mul_coords, coords_apply, ← to_matrix_apply, to_matrix_self]
#align affine_basis.to_matrix_mul_to_matrix AffineBasis.toMatrix_mul_toMatrix
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -47,25 +47,32 @@ noncomputable def toMatrix {ι' : Type _} (q : ι' → P) : Matrix ι' ι k := f
#align affine_basis.to_matrix AffineBasis.toMatrix
-/
+#print AffineBasis.toMatrix_apply /-
@[simp]
theorem toMatrix_apply {ι' : Type _} (q : ι' → P) (i : ι') (j : ι) :
b.toMatrix q i j = b.Coord j (q i) :=
rfl
#align affine_basis.to_matrix_apply AffineBasis.toMatrix_apply
+-/
+#print AffineBasis.toMatrix_self /-
@[simp]
theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
by
ext (i j)
rw [to_matrix_apply, coord_apply, Matrix.one_eq_pi_single, Pi.single_apply]
#align affine_basis.to_matrix_self AffineBasis.toMatrix_self
+-/
variable {ι' : Type _} [Fintype ι'] [Fintype ι] (b₂ : AffineBasis ι k P)
+#print AffineBasis.toMatrix_row_sum_one /-
theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : ∑ j, b.toMatrix q i j = 1 := by
simp
#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_one
+-/
+#print AffineBasis.affineIndependent_of_toMatrix_right_inv /-
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a right inverse, then `p` is affine independent. -/
theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P) {A : Matrix ι ι' k}
@@ -84,7 +91,9 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
replace hweq' := congr_arg (fun w => A.vec_mul w) hweq'
simpa only [Matrix.vecMul_vecMul, ← Matrix.mul_eq_mul, hA, Matrix.vecMul_one] using hweq'
#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_inv
+-/
+#print AffineBasis.affineSpan_eq_top_of_toMatrix_left_inv /-
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a left inverse, then `p` spans the entire space. -/
theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (p : ι' → P)
@@ -114,6 +123,7 @@ theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (
rw [hbi]
exact affineCombination_mem_affineSpan hAi p
#align affine_basis.affine_span_eq_top_of_to_matrix_left_inv AffineBasis.affineSpan_eq_top_of_toMatrix_left_inv
+-/
#print AffineBasis.toMatrix_vecMul_coords /-
/-- A change of basis formula for barycentric coordinates.
@@ -132,20 +142,25 @@ theorem toMatrix_vecMul_coords (x : P) : (b.toMatrix b₂).vecMul (b₂.coords x
variable [DecidableEq ι]
+#print AffineBasis.toMatrix_mul_toMatrix /-
theorem toMatrix_mul_toMatrix : b.toMatrix b₂ ⬝ b₂.toMatrix b = 1 :=
by
ext (l m)
change (b₂.to_matrix b).vecMul (b.coords (b₂ l)) m = _
rw [to_matrix_vec_mul_coords, coords_apply, ← to_matrix_apply, to_matrix_self]
#align affine_basis.to_matrix_mul_to_matrix AffineBasis.toMatrix_mul_toMatrix
+-/
+#print AffineBasis.isUnit_toMatrix /-
theorem isUnit_toMatrix : IsUnit (b.toMatrix b₂) :=
⟨{ val := b.toMatrix b₂
inv := b₂.toMatrix b
val_inv := b.toMatrix_mul_toMatrix b₂
inv_val := b₂.toMatrix_mul_toMatrix b }, rfl⟩
#align affine_basis.is_unit_to_matrix AffineBasis.isUnit_toMatrix
+-/
+#print AffineBasis.isUnit_toMatrix_iff /-
theorem isUnit_toMatrix_iff [Nontrivial k] (p : ι → P) :
IsUnit (b.toMatrix p) ↔ AffineIndependent k p ∧ affineSpan k (range p) = ⊤ :=
by
@@ -160,6 +175,7 @@ theorem isUnit_toMatrix_iff [Nontrivial k] (p : ι → P) :
change IsUnit (b.to_matrix b')
exact b.is_unit_to_matrix b'
#align affine_basis.is_unit_to_matrix_iff AffineBasis.isUnit_toMatrix_iff
+-/
end Ring
@@ -169,6 +185,7 @@ variable [CommRing k] [Module k V] [DecidableEq ι] [Fintype ι]
variable (b b₂ : AffineBasis ι k P)
+#print AffineBasis.toMatrix_inv_vecMul_toMatrix /-
/-- A change of basis formula for barycentric coordinates.
See also `affine_basis.to_matrix_vec_mul_coords`. -/
@@ -181,7 +198,9 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
rw [← b.to_matrix_vec_mul_coords b₂, Matrix.vecMul_vecMul, Matrix.mul_nonsing_inv _ hu,
Matrix.vecMul_one]
#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrix
+-/
+#print AffineBasis.det_smul_coords_eq_cramer_coords /-
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
theorem det_smul_coords_eq_cramer_coords (x : P) :
@@ -191,6 +210,7 @@ theorem det_smul_coords_eq_cramer_coords (x : P) :
rw [Matrix.isUnit_iff_isUnit_det] at hu
rw [← b.to_matrix_inv_vec_mul_to_matrix, Matrix.det_smul_inv_vecMul_eq_cramer_transpose _ _ hu]
#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coords
+-/
end CommRing
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -62,7 +62,7 @@ theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
variable {ι' : Type _} [Fintype ι'] [Fintype ι] (b₂ : AffineBasis ι k P)
-theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : (∑ j, b.toMatrix q i j) = 1 := by
+theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : ∑ j, b.toMatrix q i j = 1 := by
simp
#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_one
@@ -76,7 +76,7 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
have hweq' : (b.to_matrix p).vecMul w₁ = (b.to_matrix p).vecMul w₂ :=
by
ext j
- change (∑ i, w₁ i • b.coord j (p i)) = ∑ i, w₂ i • b.coord j (p i)
+ change ∑ i, w₁ i • b.coord j (p i) = ∑ i, w₂ i • b.coord j (p i)
rw [← finset.univ.affine_combination_eq_linear_combination _ _ hw₁, ←
finset.univ.affine_combination_eq_linear_combination _ _ hw₂, ←
finset.univ.map_affine_combination p w₁ hw₁, ← finset.univ.map_affine_combination p w₂ hw₂,
@@ -96,9 +96,9 @@ theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (
rintro q ⟨i, rfl⟩
exact this i
intro i
- have hAi : (∑ j, A i j) = 1 := by
+ have hAi : ∑ j, A i j = 1 := by
calc
- (∑ j, A i j) = ∑ j, A i j * ∑ l, b.to_matrix p j l := by simp
+ ∑ j, A i j = ∑ j, A i j * ∑ l, b.to_matrix p j l := by simp
_ = ∑ j, ∑ l, A i j * b.to_matrix p j l := by simp_rw [Finset.mul_sum]
_ = ∑ l, ∑ j, A i j * b.to_matrix p j l := by rw [Finset.sum_comm]
_ = ∑ l, (A ⬝ b.to_matrix p) i l := rfl
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -103,7 +103,6 @@ theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (
_ = ∑ l, ∑ j, A i j * b.to_matrix p j l := by rw [Finset.sum_comm]
_ = ∑ l, (A ⬝ b.to_matrix p) i l := rfl
_ = 1 := by simp [hA, Matrix.one_apply, Finset.filter_eq]
-
have hbi : b i = finset.univ.affine_combination k p (A i) :=
by
apply b.ext_elem
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -152,7 +152,7 @@ theorem isUnit_toMatrix_iff [Nontrivial k] (p : ι → P) :
by
constructor
· rintro ⟨⟨B, A, hA, hA'⟩, rfl : B = b.to_matrix p⟩
- rw [Matrix.mul_eq_mul] at hA hA'
+ rw [Matrix.mul_eq_mul] at hA hA'
exact
⟨b.affine_independent_of_to_matrix_right_inv p hA,
b.affine_span_eq_top_of_to_matrix_left_inv p hA'⟩
@@ -178,7 +178,7 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
(b.toMatrix b₂)⁻¹.vecMul (b.coords x) = b₂.coords x :=
by
have hu := b.is_unit_to_matrix b₂
- rw [Matrix.isUnit_iff_isUnit_det] at hu
+ rw [Matrix.isUnit_iff_isUnit_det] at hu
rw [← b.to_matrix_vec_mul_coords b₂, Matrix.vecMul_vecMul, Matrix.mul_nonsing_inv _ hu,
Matrix.vecMul_one]
#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrix
@@ -189,7 +189,7 @@ theorem det_smul_coords_eq_cramer_coords (x : P) :
(b.toMatrix b₂).det • b₂.coords x = (b.toMatrix b₂)ᵀ.cramer (b.coords x) :=
by
have hu := b.is_unit_to_matrix b₂
- rw [Matrix.isUnit_iff_isUnit_det] at hu
+ rw [Matrix.isUnit_iff_isUnit_det] at hu
rw [← b.to_matrix_inv_vec_mul_to_matrix, Matrix.det_smul_inv_vecMul_eq_cramer_transpose _ _ hu]
#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coords
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -22,7 +22,7 @@ respect to some affine basis.
-/
-open Affine BigOperators Matrix
+open scoped Affine BigOperators Matrix
open Set
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -47,21 +47,12 @@ noncomputable def toMatrix {ι' : Type _} (q : ι' → P) : Matrix ι' ι k := f
#align affine_basis.to_matrix AffineBasis.toMatrix
-/
-/- warning: affine_basis.to_matrix_apply -> AffineBasis.toMatrix_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_apply AffineBasis.toMatrix_applyₓ'. -/
@[simp]
theorem toMatrix_apply {ι' : Type _} (q : ι' → P) (i : ι') (j : ι) :
b.toMatrix q i j = b.Coord j (q i) :=
rfl
#align affine_basis.to_matrix_apply AffineBasis.toMatrix_apply
-/- warning: affine_basis.to_matrix_self -> AffineBasis.toMatrix_self is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_5 : DecidableEq.{succ u1} ι], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} ι ι k) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasOne.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_5 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))
-but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_5 : DecidableEq.{succ u1} ι], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} ι ι k) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.one.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_5 a b) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (Ring.toSemiring.{u2} k _inst_3))) (Semiring.toOne.{u2} k (Ring.toSemiring.{u2} k _inst_3)))))
-Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_self AffineBasis.toMatrix_selfₓ'. -/
@[simp]
theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
by
@@ -71,19 +62,10 @@ theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
variable {ι' : Type _} [Fintype ι'] [Fintype ι] (b₂ : AffineBasis ι k P)
-/- warning: affine_basis.to_matrix_row_sum_one -> AffineBasis.toMatrix_row_sum_one is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] {ι' : Type.{u5}} (q : ι' -> P) (i : ι'), Eq.{succ u2} k (Finset.sum.{u2, u1} k ι (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (Finset.univ.{u1} ι _inst_6) (fun (j : ι) => AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j)) (OfNat.ofNat.{u2} k 1 (OfNat.mk.{u2} k 1 (One.one.{u2} k (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3)))))))
-but is expected to have type
- forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u2} ι] {ι' : Type.{u1}} (q : ι' -> P) (i : ι'), Eq.{succ u3} k (Finset.sum.{u3, u2} k ι (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) (Finset.univ.{u2} ι _inst_6) (fun (j : ι) => AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j)) (OfNat.ofNat.{u3} k 1 (One.toOfNat1.{u3} k (Semiring.toOne.{u3} k (Ring.toSemiring.{u3} k _inst_3))))
-Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_oneₓ'. -/
theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : (∑ j, b.toMatrix q i j) = 1 := by
simp
#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_one
-/- warning: affine_basis.affine_independent_of_to_matrix_right_inv -> AffineBasis.affineIndependent_of_toMatrix_right_inv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_invₓ'. -/
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a right inverse, then `p` is affine independent. -/
theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P) {A : Matrix ι ι' k}
@@ -103,9 +85,6 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
simpa only [Matrix.vecMul_vecMul, ← Matrix.mul_eq_mul, hA, Matrix.vecMul_one] using hweq'
#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_inv
-/- warning: affine_basis.affine_span_eq_top_of_to_matrix_left_inv -> AffineBasis.affineSpan_eq_top_of_toMatrix_left_inv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_basis.affine_span_eq_top_of_to_matrix_left_inv AffineBasis.affineSpan_eq_top_of_toMatrix_left_invₓ'. -/
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a left inverse, then `p` spans the entire space. -/
theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (p : ι' → P)
@@ -154,9 +133,6 @@ theorem toMatrix_vecMul_coords (x : P) : (b.toMatrix b₂).vecMul (b₂.coords x
variable [DecidableEq ι]
-/- warning: affine_basis.to_matrix_mul_to_matrix -> AffineBasis.toMatrix_mul_toMatrix is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_mul_to_matrix AffineBasis.toMatrix_mul_toMatrixₓ'. -/
theorem toMatrix_mul_toMatrix : b.toMatrix b₂ ⬝ b₂.toMatrix b = 1 :=
by
ext (l m)
@@ -164,12 +140,6 @@ theorem toMatrix_mul_toMatrix : b.toMatrix b₂ ⬝ b₂.toMatrix b = 1 :=
rw [to_matrix_vec_mul_coords, coords_apply, ← to_matrix_apply, to_matrix_self]
#align affine_basis.to_matrix_mul_to_matrix AffineBasis.toMatrix_mul_toMatrix
-/- warning: affine_basis.is_unit_to_matrix -> AffineBasis.isUnit_toMatrix is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.ring.{u2, u1} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_7 a b) _inst_3)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b₂))
-but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.semiring.{u2, u1} ι k (Ring.toSemiring.{u2} k _inst_3) _inst_6 (fun (a : ι) (b : ι) => _inst_7 a b)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b₂))
-Case conversion may be inaccurate. Consider using '#align affine_basis.is_unit_to_matrix AffineBasis.isUnit_toMatrixₓ'. -/
theorem isUnit_toMatrix : IsUnit (b.toMatrix b₂) :=
⟨{ val := b.toMatrix b₂
inv := b₂.toMatrix b
@@ -177,12 +147,6 @@ theorem isUnit_toMatrix : IsUnit (b.toMatrix b₂) :=
inv_val := b₂.toMatrix_mul_toMatrix b }, rfl⟩
#align affine_basis.is_unit_to_matrix AffineBasis.isUnit_toMatrix
-/- warning: affine_basis.is_unit_to_matrix_iff -> AffineBasis.isUnit_toMatrix_iff is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] [_inst_7 : DecidableEq.{succ u1} ι] [_inst_8 : Nontrivial.{u2} k] (p : ι -> P), Iff (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.ring.{u2, u1} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_7 a b) _inst_3)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι p)) (And (AffineIndependent.{u2, u3, u4, u1} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι p) (Eq.{succ u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u4, succ u1} P ι p)) (Top.top.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toHasTop.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.completeLattice.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2)))))
-but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] [_inst_7 : DecidableEq.{succ u1} ι] [_inst_8 : Nontrivial.{u2} k] (p : ι -> P), Iff (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.semiring.{u2, u1} ι k (Ring.toSemiring.{u2} k _inst_3) _inst_6 (fun (a : ι) (b : ι) => _inst_7 a b)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι p)) (And (AffineIndependent.{u2, u3, u4, u1} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι p) (Eq.{succ u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u4, succ u1} P ι p)) (Top.top.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toTop.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.instCompleteLatticeAffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align affine_basis.is_unit_to_matrix_iff AffineBasis.isUnit_toMatrix_iffₓ'. -/
theorem isUnit_toMatrix_iff [Nontrivial k] (p : ι → P) :
IsUnit (b.toMatrix p) ↔ AffineIndependent k p ∧ affineSpan k (range p) = ⊤ :=
by
@@ -206,9 +170,6 @@ variable [CommRing k] [Module k V] [DecidableEq ι] [Fintype ι]
variable (b b₂ : AffineBasis ι k P)
-/- warning: affine_basis.to_matrix_inv_vec_mul_to_matrix -> AffineBasis.toMatrix_inv_vecMul_toMatrix is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrixₓ'. -/
/-- A change of basis formula for barycentric coordinates.
See also `affine_basis.to_matrix_vec_mul_coords`. -/
@@ -222,9 +183,6 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
Matrix.vecMul_one]
#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrix
-/- warning: affine_basis.det_smul_coords_eq_cramer_coords -> AffineBasis.det_smul_coords_eq_cramer_coords is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coordsₓ'. -/
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
theorem det_smul_coords_eq_cramer_coords (x : P) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -48,10 +48,7 @@ noncomputable def toMatrix {ι' : Type _} (q : ι' → P) : Matrix ι' ι k := f
-/
/- warning: affine_basis.to_matrix_apply -> AffineBasis.toMatrix_apply is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u5}} (q : ι' -> P) (i : ι') (j : ι), Eq.{succ u2} k (AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j) (coeFn.{max (succ u3) (succ u4) (succ u2), max (succ u4) (succ u2)} (AffineMap.{u2, u3, u4, u2, u2} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k _inst_3)) (addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))) (fun (_x : AffineMap.{u2, u3, u4, u2, u2} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k _inst_3)) (addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))) => P -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, u2, u2} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k _inst_3)) (addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))) (AffineBasis.coord.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b j) (q i))
-but is expected to have type
- forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} (q : ι' -> P) (i : ι') (j : ι), Eq.{succ u3} k (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u5, succ u3} (AffineMap.{u3, u4, u5, u3, u3} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (Ring.toAddCommGroup.{u3} k _inst_3) (Semiring.toModule.{u3} k (Ring.toSemiring.{u3} k _inst_3)) (addGroupIsAddTorsor.{u3} k (AddGroupWithOne.toAddGroup.{u3} k (Ring.toAddGroupWithOne.{u3} k _inst_3)))) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => k) _x) (AffineMap.funLike.{u3, u4, u5, u3, u3} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (Ring.toAddCommGroup.{u3} k _inst_3) (Semiring.toModule.{u3} k (Ring.toSemiring.{u3} k _inst_3)) (addGroupIsAddTorsor.{u3} k (AddGroupWithOne.toAddGroup.{u3} k (Ring.toAddGroupWithOne.{u3} k _inst_3)))) (AffineBasis.coord.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b j) (q i))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_apply AffineBasis.toMatrix_applyₓ'. -/
@[simp]
theorem toMatrix_apply {ι' : Type _} (q : ι' → P) (i : ι') (j : ι) :
@@ -85,10 +82,7 @@ theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : (∑ j,
#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_one
/- warning: affine_basis.affine_independent_of_to_matrix_right_inv -> AffineBasis.affineIndependent_of_toMatrix_right_inv is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u5}} [_inst_5 : Fintype.{u5} ι'] [_inst_6 : Fintype.{u1} ι] [_inst_7 : DecidableEq.{succ u5} ι'] (p : ι' -> P) {A : Matrix.{u1, u5, u2} ι ι' k}, (Eq.{succ (max u5 u2)} (Matrix.{u5, u5, u2} ι' ι' k) (Matrix.mul.{u2, u5, u1, u5} ι' ι ι' k _inst_6 (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p) A) (OfNat.ofNat.{max u5 u2} (Matrix.{u5, u5, u2} ι' ι' k) 1 (OfNat.mk.{max u5 u2} (Matrix.{u5, u5, u2} ι' ι' k) 1 (One.one.{max u5 u2} (Matrix.{u5, u5, u2} ι' ι' k) (Matrix.hasOne.{u2, u5} ι' k (fun (a : ι') (b : ι') => _inst_7 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))) -> (AffineIndependent.{u2, u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι' p)
-but is expected to have type
- forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} [_inst_5 : Fintype.{u1} ι'] [_inst_6 : Fintype.{u2} ι] [_inst_7 : DecidableEq.{succ u1} ι'] (p : ι' -> P) {A : Matrix.{u2, u1, u3} ι ι' k}, (Eq.{max (succ u3) (succ u1)} (Matrix.{u1, u1, u3} ι' ι' k) (Matrix.mul.{u3, u1, u2, u1} ι' ι ι' k _inst_6 (NonUnitalNonAssocRing.toMul.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p) A) (OfNat.ofNat.{max u3 u1} (Matrix.{u1, u1, u3} ι' ι' k) 1 (One.toOfNat1.{max u3 u1} (Matrix.{u1, u1, u3} ι' ι' k) (Matrix.one.{u3, u1} ι' k (fun (a : ι') (b : ι') => _inst_7 a b) (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k (Ring.toSemiring.{u3} k _inst_3))) (Semiring.toOne.{u3} k (Ring.toSemiring.{u3} k _inst_3)))))) -> (AffineIndependent.{u3, u4, u5, u1} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι' p)
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_invₓ'. -/
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a right inverse, then `p` is affine independent. -/
@@ -110,10 +104,7 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_inv
/- warning: affine_basis.affine_span_eq_top_of_to_matrix_left_inv -> AffineBasis.affineSpan_eq_top_of_toMatrix_left_inv is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u5}} [_inst_5 : Fintype.{u5} ι'] [_inst_6 : Fintype.{u1} ι] [_inst_7 : DecidableEq.{succ u1} ι] [_inst_8 : Nontrivial.{u2} k] (p : ι' -> P) {A : Matrix.{u1, u5, u2} ι ι' k}, (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} ι ι k) (Matrix.mul.{u2, u1, u5, u1} ι ι' ι k _inst_5 (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) A (AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasOne.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))) -> (Eq.{succ u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u4, succ u5} P ι' p)) (Top.top.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toHasTop.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.completeLattice.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2))))
-but is expected to have type
- forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} [_inst_5 : Fintype.{u1} ι'] [_inst_6 : Fintype.{u2} ι] [_inst_7 : DecidableEq.{succ u2} ι] [_inst_8 : Nontrivial.{u3} k] (p : ι' -> P) {A : Matrix.{u2, u1, u3} ι ι' k}, (Eq.{max (succ u2) (succ u3)} (Matrix.{u2, u2, u3} ι ι k) (Matrix.mul.{u3, u2, u1, u2} ι ι' ι k _inst_5 (NonUnitalNonAssocRing.toMul.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) A (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p)) (OfNat.ofNat.{max u2 u3} (Matrix.{u2, u2, u3} ι ι k) 1 (One.toOfNat1.{max u2 u3} (Matrix.{u2, u2, u3} ι ι k) (Matrix.one.{u3, u2} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k (Ring.toSemiring.{u3} k _inst_3))) (Semiring.toOne.{u3} k (Ring.toSemiring.{u3} k _inst_3)))))) -> (Eq.{succ u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u5, succ u1} P ι' p)) (Top.top.{u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toTop.{u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2))))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_basis.affine_span_eq_top_of_to_matrix_left_inv AffineBasis.affineSpan_eq_top_of_toMatrix_left_invₓ'. -/
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a left inverse, then `p` spans the entire space. -/
@@ -164,10 +155,7 @@ theorem toMatrix_vecMul_coords (x : P) : (b.toMatrix b₂).vecMul (b₂.coords x
variable [DecidableEq ι]
/- warning: affine_basis.to_matrix_mul_to_matrix -> AffineBasis.toMatrix_mul_toMatrix is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} ι ι k) (Matrix.mul.{u2, u1, u1, u1} ι ι ι k _inst_6 (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b₂)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b₂ ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasOne.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))
-but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} ι ι k) (Matrix.mul.{u2, u1, u1, u1} ι ι ι k _inst_6 (NonUnitalNonAssocRing.toMul.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b₂)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b₂ ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.one.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (Ring.toSemiring.{u2} k _inst_3))) (Semiring.toOne.{u2} k (Ring.toSemiring.{u2} k _inst_3)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_mul_to_matrix AffineBasis.toMatrix_mul_toMatrixₓ'. -/
theorem toMatrix_mul_toMatrix : b.toMatrix b₂ ⬝ b₂.toMatrix b = 1 :=
by
@@ -219,10 +207,7 @@ variable [CommRing k] [Module k V] [DecidableEq ι] [Fintype ι]
variable (b b₂ : AffineBasis ι k P)
/- warning: affine_basis.to_matrix_inv_vec_mul_to_matrix -> AffineBasis.toMatrix_inv_vecMul_toMatrix is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasInv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
-but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.inv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrixₓ'. -/
/-- A change of basis formula for barycentric coordinates.
@@ -238,10 +223,7 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrix
/- warning: affine_basis.det_smul_coords_eq_cramer_coords -> AffineBasis.det_smul_coords_eq_cramer_coords is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{succ (max u1 u2)} (ι -> k) (SMul.smul.{u2, max u1 u2} k (ι -> k) (Function.hasSMul.{u1, u2, u2} ι k k (Mul.toSMul.{u2} k (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) => (ι -> k) -> ι -> k) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
-but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2922 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coordsₓ'. -/
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -241,7 +241,7 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{succ (max u1 u2)} (ι -> k) (SMul.smul.{u2, max u1 u2} k (ι -> k) (Function.hasSMul.{u1, u2, u2} ι k k (Mul.toSMul.{u2} k (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) => (ι -> k) -> ι -> k) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2922 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2922 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
Case conversion may be inaccurate. Consider using '#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coordsₓ'. -/
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -241,7 +241,7 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{succ (max u1 u2)} (ι -> k) (SMul.smul.{u2, max u1 u2} k (ι -> k) (Function.hasSMul.{u1, u2, u2} ι k k (Mul.toSMul.{u2} k (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) => (ι -> k) -> ι -> k) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2922 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2922 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
Case conversion may be inaccurate. Consider using '#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coordsₓ'. -/
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -51,7 +51,7 @@ noncomputable def toMatrix {ι' : Type _} (q : ι' → P) : Matrix ι' ι k := f
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u5}} (q : ι' -> P) (i : ι') (j : ι), Eq.{succ u2} k (AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j) (coeFn.{max (succ u3) (succ u4) (succ u2), max (succ u4) (succ u2)} (AffineMap.{u2, u3, u4, u2, u2} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k _inst_3)) (addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))) (fun (_x : AffineMap.{u2, u3, u4, u2, u2} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k _inst_3)) (addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))) => P -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, u2, u2} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k _inst_3)) (addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))) (AffineBasis.coord.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b j) (q i))
but is expected to have type
- forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} (q : ι' -> P) (i : ι') (j : ι), Eq.{succ u3} k (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u5, succ u3} (AffineMap.{u3, u4, u5, u3, u3} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (Ring.toAddCommGroup.{u3} k _inst_3) (AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u3} k _inst_3) (addGroupIsAddTorsor.{u3} k (AddGroupWithOne.toAddGroup.{u3} k (Ring.toAddGroupWithOne.{u3} k _inst_3)))) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => k) _x) (AffineMap.funLike.{u3, u4, u5, u3, u3} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (Ring.toAddCommGroup.{u3} k _inst_3) (AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u3} k _inst_3) (addGroupIsAddTorsor.{u3} k (AddGroupWithOne.toAddGroup.{u3} k (Ring.toAddGroupWithOne.{u3} k _inst_3)))) (AffineBasis.coord.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b j) (q i))
+ forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} (q : ι' -> P) (i : ι') (j : ι), Eq.{succ u3} k (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u5, succ u3} (AffineMap.{u3, u4, u5, u3, u3} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (Ring.toAddCommGroup.{u3} k _inst_3) (Semiring.toModule.{u3} k (Ring.toSemiring.{u3} k _inst_3)) (addGroupIsAddTorsor.{u3} k (AddGroupWithOne.toAddGroup.{u3} k (Ring.toAddGroupWithOne.{u3} k _inst_3)))) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => k) _x) (AffineMap.funLike.{u3, u4, u5, u3, u3} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (Ring.toAddCommGroup.{u3} k _inst_3) (Semiring.toModule.{u3} k (Ring.toSemiring.{u3} k _inst_3)) (addGroupIsAddTorsor.{u3} k (AddGroupWithOne.toAddGroup.{u3} k (Ring.toAddGroupWithOne.{u3} k _inst_3)))) (AffineBasis.coord.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b j) (q i))
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_apply AffineBasis.toMatrix_applyₓ'. -/
@[simp]
theorem toMatrix_apply {ι' : Type _} (q : ι' → P) (i : ι') (j : ι) :
@@ -222,7 +222,7 @@ variable (b b₂ : AffineBasis ι k P)
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasInv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.inv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.inv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrixₓ'. -/
/-- A change of basis formula for barycentric coordinates.
@@ -241,7 +241,7 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{succ (max u1 u2)} (ι -> k) (SMul.smul.{u2, max u1 u2} k (ι -> k) (Function.hasSMul.{u1, u2, u2} ι k k (Mul.toSMul.{u2} k (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) => (ι -> k) -> ι -> k) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2922 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2922 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
Case conversion may be inaccurate. Consider using '#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coordsₓ'. -/
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -222,7 +222,7 @@ variable (b b₂ : AffineBasis ι k P)
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasInv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.inv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.inv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrixₓ'. -/
/-- A change of basis formula for barycentric coordinates.
@@ -241,7 +241,7 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{succ (max u1 u2)} (ι -> k) (SMul.smul.{u2, max u1 u2} k (ι -> k) (Function.hasSMul.{u1, u2, u2} ι k k (Mul.toSMul.{u2} k (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) => (ι -> k) -> ι -> k) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2934 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2922 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.273 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3598 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
Case conversion may be inaccurate. Consider using '#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coordsₓ'. -/
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -63,7 +63,7 @@ theorem toMatrix_apply {ι' : Type _} (q : ι' → P) (i : ι') (j : ι) :
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_5 : DecidableEq.{succ u1} ι], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} ι ι k) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasOne.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_5 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_5 : DecidableEq.{succ u1} ι], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} ι ι k) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.one.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_5 a b) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (Ring.toSemiring.{u2} k _inst_3))) (NonAssocRing.toOne.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))))
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_5 : DecidableEq.{succ u1} ι], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} ι ι k) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.one.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_5 a b) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (Ring.toSemiring.{u2} k _inst_3))) (Semiring.toOne.{u2} k (Ring.toSemiring.{u2} k _inst_3)))))
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_self AffineBasis.toMatrix_selfₓ'. -/
@[simp]
theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
@@ -78,7 +78,7 @@ variable {ι' : Type _} [Fintype ι'] [Fintype ι] (b₂ : AffineBasis ι k P)
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] {ι' : Type.{u5}} (q : ι' -> P) (i : ι'), Eq.{succ u2} k (Finset.sum.{u2, u1} k ι (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (Finset.univ.{u1} ι _inst_6) (fun (j : ι) => AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j)) (OfNat.ofNat.{u2} k 1 (OfNat.mk.{u2} k 1 (One.one.{u2} k (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3)))))))
but is expected to have type
- forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u2} ι] {ι' : Type.{u1}} (q : ι' -> P) (i : ι'), Eq.{succ u3} k (Finset.sum.{u3, u2} k ι (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) (Finset.univ.{u2} ι _inst_6) (fun (j : ι) => AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j)) (OfNat.ofNat.{u3} k 1 (One.toOfNat1.{u3} k (NonAssocRing.toOne.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3))))
+ forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u2} ι] {ι' : Type.{u1}} (q : ι' -> P) (i : ι'), Eq.{succ u3} k (Finset.sum.{u3, u2} k ι (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) (Finset.univ.{u2} ι _inst_6) (fun (j : ι) => AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j)) (OfNat.ofNat.{u3} k 1 (One.toOfNat1.{u3} k (Semiring.toOne.{u3} k (Ring.toSemiring.{u3} k _inst_3))))
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_oneₓ'. -/
theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : (∑ j, b.toMatrix q i j) = 1 := by
simp
@@ -88,7 +88,7 @@ theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : (∑ j,
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u5}} [_inst_5 : Fintype.{u5} ι'] [_inst_6 : Fintype.{u1} ι] [_inst_7 : DecidableEq.{succ u5} ι'] (p : ι' -> P) {A : Matrix.{u1, u5, u2} ι ι' k}, (Eq.{succ (max u5 u2)} (Matrix.{u5, u5, u2} ι' ι' k) (Matrix.mul.{u2, u5, u1, u5} ι' ι ι' k _inst_6 (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p) A) (OfNat.ofNat.{max u5 u2} (Matrix.{u5, u5, u2} ι' ι' k) 1 (OfNat.mk.{max u5 u2} (Matrix.{u5, u5, u2} ι' ι' k) 1 (One.one.{max u5 u2} (Matrix.{u5, u5, u2} ι' ι' k) (Matrix.hasOne.{u2, u5} ι' k (fun (a : ι') (b : ι') => _inst_7 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))) -> (AffineIndependent.{u2, u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι' p)
but is expected to have type
- forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} [_inst_5 : Fintype.{u1} ι'] [_inst_6 : Fintype.{u2} ι] [_inst_7 : DecidableEq.{succ u1} ι'] (p : ι' -> P) {A : Matrix.{u2, u1, u3} ι ι' k}, (Eq.{max (succ u3) (succ u1)} (Matrix.{u1, u1, u3} ι' ι' k) (Matrix.mul.{u3, u1, u2, u1} ι' ι ι' k _inst_6 (NonUnitalNonAssocRing.toMul.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p) A) (OfNat.ofNat.{max u3 u1} (Matrix.{u1, u1, u3} ι' ι' k) 1 (One.toOfNat1.{max u3 u1} (Matrix.{u1, u1, u3} ι' ι' k) (Matrix.one.{u3, u1} ι' k (fun (a : ι') (b : ι') => _inst_7 a b) (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k (Ring.toSemiring.{u3} k _inst_3))) (NonAssocRing.toOne.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))))) -> (AffineIndependent.{u3, u4, u5, u1} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι' p)
+ forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} [_inst_5 : Fintype.{u1} ι'] [_inst_6 : Fintype.{u2} ι] [_inst_7 : DecidableEq.{succ u1} ι'] (p : ι' -> P) {A : Matrix.{u2, u1, u3} ι ι' k}, (Eq.{max (succ u3) (succ u1)} (Matrix.{u1, u1, u3} ι' ι' k) (Matrix.mul.{u3, u1, u2, u1} ι' ι ι' k _inst_6 (NonUnitalNonAssocRing.toMul.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p) A) (OfNat.ofNat.{max u3 u1} (Matrix.{u1, u1, u3} ι' ι' k) 1 (One.toOfNat1.{max u3 u1} (Matrix.{u1, u1, u3} ι' ι' k) (Matrix.one.{u3, u1} ι' k (fun (a : ι') (b : ι') => _inst_7 a b) (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k (Ring.toSemiring.{u3} k _inst_3))) (Semiring.toOne.{u3} k (Ring.toSemiring.{u3} k _inst_3)))))) -> (AffineIndependent.{u3, u4, u5, u1} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι' p)
Case conversion may be inaccurate. Consider using '#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_invₓ'. -/
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a right inverse, then `p` is affine independent. -/
@@ -113,7 +113,7 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u5}} [_inst_5 : Fintype.{u5} ι'] [_inst_6 : Fintype.{u1} ι] [_inst_7 : DecidableEq.{succ u1} ι] [_inst_8 : Nontrivial.{u2} k] (p : ι' -> P) {A : Matrix.{u1, u5, u2} ι ι' k}, (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} ι ι k) (Matrix.mul.{u2, u1, u5, u1} ι ι' ι k _inst_5 (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) A (AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasOne.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))) -> (Eq.{succ u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u4, succ u5} P ι' p)) (Top.top.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toHasTop.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.completeLattice.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2))))
but is expected to have type
- forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} [_inst_5 : Fintype.{u1} ι'] [_inst_6 : Fintype.{u2} ι] [_inst_7 : DecidableEq.{succ u2} ι] [_inst_8 : Nontrivial.{u3} k] (p : ι' -> P) {A : Matrix.{u2, u1, u3} ι ι' k}, (Eq.{max (succ u2) (succ u3)} (Matrix.{u2, u2, u3} ι ι k) (Matrix.mul.{u3, u2, u1, u2} ι ι' ι k _inst_5 (NonUnitalNonAssocRing.toMul.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) A (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p)) (OfNat.ofNat.{max u2 u3} (Matrix.{u2, u2, u3} ι ι k) 1 (One.toOfNat1.{max u2 u3} (Matrix.{u2, u2, u3} ι ι k) (Matrix.one.{u3, u2} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k (Ring.toSemiring.{u3} k _inst_3))) (NonAssocRing.toOne.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))))) -> (Eq.{succ u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u5, succ u1} P ι' p)) (Top.top.{u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toTop.{u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2))))
+ forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} [_inst_5 : Fintype.{u1} ι'] [_inst_6 : Fintype.{u2} ι] [_inst_7 : DecidableEq.{succ u2} ι] [_inst_8 : Nontrivial.{u3} k] (p : ι' -> P) {A : Matrix.{u2, u1, u3} ι ι' k}, (Eq.{max (succ u2) (succ u3)} (Matrix.{u2, u2, u3} ι ι k) (Matrix.mul.{u3, u2, u1, u2} ι ι' ι k _inst_5 (NonUnitalNonAssocRing.toMul.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) A (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p)) (OfNat.ofNat.{max u2 u3} (Matrix.{u2, u2, u3} ι ι k) 1 (One.toOfNat1.{max u2 u3} (Matrix.{u2, u2, u3} ι ι k) (Matrix.one.{u3, u2} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k (Ring.toSemiring.{u3} k _inst_3))) (Semiring.toOne.{u3} k (Ring.toSemiring.{u3} k _inst_3)))))) -> (Eq.{succ u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u5, succ u1} P ι' p)) (Top.top.{u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toTop.{u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2))))
Case conversion may be inaccurate. Consider using '#align affine_basis.affine_span_eq_top_of_to_matrix_left_inv AffineBasis.affineSpan_eq_top_of_toMatrix_left_invₓ'. -/
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a left inverse, then `p` spans the entire space. -/
@@ -167,7 +167,7 @@ variable [DecidableEq ι]
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} ι ι k) (Matrix.mul.{u2, u1, u1, u1} ι ι ι k _inst_6 (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b₂)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b₂ ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasOne.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} ι ι k) (Matrix.mul.{u2, u1, u1, u1} ι ι ι k _inst_6 (NonUnitalNonAssocRing.toMul.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b₂)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b₂ ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.one.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (Ring.toSemiring.{u2} k _inst_3))) (NonAssocRing.toOne.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))))
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} ι ι k) (Matrix.mul.{u2, u1, u1, u1} ι ι ι k _inst_6 (NonUnitalNonAssocRing.toMul.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b₂)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b₂ ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.one.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (Ring.toSemiring.{u2} k _inst_3))) (Semiring.toOne.{u2} k (Ring.toSemiring.{u2} k _inst_3)))))
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_mul_to_matrix AffineBasis.toMatrix_mul_toMatrixₓ'. -/
theorem toMatrix_mul_toMatrix : b.toMatrix b₂ ⬝ b₂.toMatrix b = 1 :=
by
@@ -222,7 +222,7 @@ variable (b b₂ : AffineBasis ι k P)
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasInv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.inv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.inv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrixₓ'. -/
/-- A change of basis formula for barycentric coordinates.
@@ -241,7 +241,7 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{succ (max u1 u2)} (ι -> k) (SMul.smul.{u2, max u1 u2} k (ι -> k) (Function.hasSMul.{u1, u2, u2} ι k k (Mul.toSMul.{u2} k (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) => (ι -> k) -> ι -> k) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2934 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2934 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
Case conversion may be inaccurate. Consider using '#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coordsₓ'. -/
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/738054fa93d43512da144ec45ce799d18fd44248
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
! This file was ported from Lean 3 source module linear_algebra.affine_space.matrix
-! leanprover-community/mathlib commit 2de9c37fa71dde2f1c6feff19876dd6a7b1519f0
+! leanprover-community/mathlib commit fe8d0ff42c3c24d789f491dc2622b6cac3d61564
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.LinearAlgebra.Determinant
/-!
# Matrix results for barycentric co-ordinates
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
Results about the matrix of barycentric co-ordinates for a family of points in an affine space, with
respect to some affine basis.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/36b8aa61ea7c05727161f96a0532897bd72aedab
@@ -219,7 +219,7 @@ variable (b b₂ : AffineBasis ι k P)
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasInv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.inv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.inv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrixₓ'. -/
/-- A change of basis formula for barycentric coordinates.
@@ -238,7 +238,7 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{succ (max u1 u2)} (ι -> k) (SMul.smul.{u2, max u1 u2} k (ι -> k) (Function.hasSMul.{u1, u2, u2} ι k k (Mul.toSMul.{u2} k (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) => (ι -> k) -> ι -> k) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2934 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2934 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3599 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
Case conversion may be inaccurate. Consider using '#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coordsₓ'. -/
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/36b8aa61ea7c05727161f96a0532897bd72aedab
@@ -238,7 +238,7 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
lean 3 declaration is
forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{succ (max u1 u2)} (ι -> k) (SMul.smul.{u2, max u1 u2} k (ι -> k) (Function.hasSMul.{u1, u2, u2} ι k k (Mul.toSMul.{u2} k (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) => (ι -> k) -> ι -> k) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
but is expected to have type
- forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2939 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2934 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
Case conversion may be inaccurate. Consider using '#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coordsₓ'. -/
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/36b8aa61ea7c05727161f96a0532897bd72aedab
@@ -35,19 +35,33 @@ section Ring
variable [Ring k] [Module k V] (b : AffineBasis ι k P)
+#print AffineBasis.toMatrix /-
/-- Given an affine basis `p`, and a family of points `q : ι' → P`, this is the matrix whose
rows are the barycentric coordinates of `q` with respect to `p`.
It is an affine equivalent of `basis.to_matrix`. -/
noncomputable def toMatrix {ι' : Type _} (q : ι' → P) : Matrix ι' ι k := fun i j => b.Coord j (q i)
#align affine_basis.to_matrix AffineBasis.toMatrix
+-/
+/- warning: affine_basis.to_matrix_apply -> AffineBasis.toMatrix_apply is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u5}} (q : ι' -> P) (i : ι') (j : ι), Eq.{succ u2} k (AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j) (coeFn.{max (succ u3) (succ u4) (succ u2), max (succ u4) (succ u2)} (AffineMap.{u2, u3, u4, u2, u2} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k _inst_3)) (addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))) (fun (_x : AffineMap.{u2, u3, u4, u2, u2} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k _inst_3)) (addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))) => P -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, u2, u2} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k _inst_3)) (addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))) (AffineBasis.coord.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b j) (q i))
+but is expected to have type
+ forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} (q : ι' -> P) (i : ι') (j : ι), Eq.{succ u3} k (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u5, succ u3} (AffineMap.{u3, u4, u5, u3, u3} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (Ring.toAddCommGroup.{u3} k _inst_3) (AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u3} k _inst_3) (addGroupIsAddTorsor.{u3} k (AddGroupWithOne.toAddGroup.{u3} k (Ring.toAddGroupWithOne.{u3} k _inst_3)))) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => k) _x) (AffineMap.funLike.{u3, u4, u5, u3, u3} k V P k k _inst_3 _inst_1 _inst_4 _inst_2 (Ring.toAddCommGroup.{u3} k _inst_3) (AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u3} k _inst_3) (addGroupIsAddTorsor.{u3} k (AddGroupWithOne.toAddGroup.{u3} k (Ring.toAddGroupWithOne.{u3} k _inst_3)))) (AffineBasis.coord.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b j) (q i))
+Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_apply AffineBasis.toMatrix_applyₓ'. -/
@[simp]
theorem toMatrix_apply {ι' : Type _} (q : ι' → P) (i : ι') (j : ι) :
b.toMatrix q i j = b.Coord j (q i) :=
rfl
#align affine_basis.to_matrix_apply AffineBasis.toMatrix_apply
+/- warning: affine_basis.to_matrix_self -> AffineBasis.toMatrix_self is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_5 : DecidableEq.{succ u1} ι], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} ι ι k) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasOne.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_5 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))
+but is expected to have type
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_5 : DecidableEq.{succ u1} ι], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} ι ι k) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.one.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_5 a b) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (Ring.toSemiring.{u2} k _inst_3))) (NonAssocRing.toOne.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_self AffineBasis.toMatrix_selfₓ'. -/
@[simp]
theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
by
@@ -57,10 +71,22 @@ theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
variable {ι' : Type _} [Fintype ι'] [Fintype ι] (b₂ : AffineBasis ι k P)
+/- warning: affine_basis.to_matrix_row_sum_one -> AffineBasis.toMatrix_row_sum_one is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] {ι' : Type.{u5}} (q : ι' -> P) (i : ι'), Eq.{succ u2} k (Finset.sum.{u2, u1} k ι (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (Finset.univ.{u1} ι _inst_6) (fun (j : ι) => AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j)) (OfNat.ofNat.{u2} k 1 (OfNat.mk.{u2} k 1 (One.one.{u2} k (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3)))))))
+but is expected to have type
+ forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u2} ι] {ι' : Type.{u1}} (q : ι' -> P) (i : ι'), Eq.{succ u3} k (Finset.sum.{u3, u2} k ι (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) (Finset.univ.{u2} ι _inst_6) (fun (j : ι) => AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' q i j)) (OfNat.ofNat.{u3} k 1 (One.toOfNat1.{u3} k (NonAssocRing.toOne.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3))))
+Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_oneₓ'. -/
theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : (∑ j, b.toMatrix q i j) = 1 := by
simp
#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_one
+/- warning: affine_basis.affine_independent_of_to_matrix_right_inv -> AffineBasis.affineIndependent_of_toMatrix_right_inv is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u5}} [_inst_5 : Fintype.{u5} ι'] [_inst_6 : Fintype.{u1} ι] [_inst_7 : DecidableEq.{succ u5} ι'] (p : ι' -> P) {A : Matrix.{u1, u5, u2} ι ι' k}, (Eq.{succ (max u5 u2)} (Matrix.{u5, u5, u2} ι' ι' k) (Matrix.mul.{u2, u5, u1, u5} ι' ι ι' k _inst_6 (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p) A) (OfNat.ofNat.{max u5 u2} (Matrix.{u5, u5, u2} ι' ι' k) 1 (OfNat.mk.{max u5 u2} (Matrix.{u5, u5, u2} ι' ι' k) 1 (One.one.{max u5 u2} (Matrix.{u5, u5, u2} ι' ι' k) (Matrix.hasOne.{u2, u5} ι' k (fun (a : ι') (b : ι') => _inst_7 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))) -> (AffineIndependent.{u2, u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι' p)
+but is expected to have type
+ forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} [_inst_5 : Fintype.{u1} ι'] [_inst_6 : Fintype.{u2} ι] [_inst_7 : DecidableEq.{succ u1} ι'] (p : ι' -> P) {A : Matrix.{u2, u1, u3} ι ι' k}, (Eq.{max (succ u3) (succ u1)} (Matrix.{u1, u1, u3} ι' ι' k) (Matrix.mul.{u3, u1, u2, u1} ι' ι ι' k _inst_6 (NonUnitalNonAssocRing.toMul.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p) A) (OfNat.ofNat.{max u3 u1} (Matrix.{u1, u1, u3} ι' ι' k) 1 (One.toOfNat1.{max u3 u1} (Matrix.{u1, u1, u3} ι' ι' k) (Matrix.one.{u3, u1} ι' k (fun (a : ι') (b : ι') => _inst_7 a b) (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k (Ring.toSemiring.{u3} k _inst_3))) (NonAssocRing.toOne.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))))) -> (AffineIndependent.{u3, u4, u5, u1} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι' p)
+Case conversion may be inaccurate. Consider using '#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_invₓ'. -/
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a right inverse, then `p` is affine independent. -/
theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P) {A : Matrix ι ι' k}
@@ -80,6 +106,12 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
simpa only [Matrix.vecMul_vecMul, ← Matrix.mul_eq_mul, hA, Matrix.vecMul_one] using hweq'
#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_inv
+/- warning: affine_basis.affine_span_eq_top_of_to_matrix_left_inv -> AffineBasis.affineSpan_eq_top_of_toMatrix_left_inv is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u5}} [_inst_5 : Fintype.{u5} ι'] [_inst_6 : Fintype.{u1} ι] [_inst_7 : DecidableEq.{succ u1} ι] [_inst_8 : Nontrivial.{u2} k] (p : ι' -> P) {A : Matrix.{u1, u5, u2} ι ι' k}, (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} ι ι k) (Matrix.mul.{u2, u1, u5, u1} ι ι' ι k _inst_5 (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) A (AffineBasis.toMatrix.{u1, u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasOne.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))) -> (Eq.{succ u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u4, succ u5} P ι' p)) (Top.top.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toHasTop.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.completeLattice.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2))))
+but is expected to have type
+ forall {ι : Type.{u2}} {k : Type.{u3}} {V : Type.{u4}} {P : Type.{u5}} [_inst_1 : AddCommGroup.{u4} V] [_inst_2 : AddTorsor.{u4, u5} V P (AddCommGroup.toAddGroup.{u4} V _inst_1)] [_inst_3 : Ring.{u3} k] [_inst_4 : Module.{u3, u4} k V (Ring.toSemiring.{u3} k _inst_3) (AddCommGroup.toAddCommMonoid.{u4} V _inst_1)] (b : AffineBasis.{u2, u3, u4, u5} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) {ι' : Type.{u1}} [_inst_5 : Fintype.{u1} ι'] [_inst_6 : Fintype.{u2} ι] [_inst_7 : DecidableEq.{succ u2} ι] [_inst_8 : Nontrivial.{u3} k] (p : ι' -> P) {A : Matrix.{u2, u1, u3} ι ι' k}, (Eq.{max (succ u2) (succ u3)} (Matrix.{u2, u2, u3} ι ι k) (Matrix.mul.{u3, u2, u1, u2} ι ι' ι k _inst_5 (NonUnitalNonAssocRing.toMul.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} k (NonAssocRing.toNonUnitalNonAssocRing.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))) A (AffineBasis.toMatrix.{u2, u3, u4, u5, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι' p)) (OfNat.ofNat.{max u2 u3} (Matrix.{u2, u2, u3} ι ι k) 1 (One.toOfNat1.{max u2 u3} (Matrix.{u2, u2, u3} ι ι k) (Matrix.one.{u3, u2} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k (Ring.toSemiring.{u3} k _inst_3))) (NonAssocRing.toOne.{u3} k (Ring.toNonAssocRing.{u3} k _inst_3)))))) -> (Eq.{succ u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u5, succ u1} P ι' p)) (Top.top.{u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toTop.{u5} (AffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u4, u5} k V P _inst_3 _inst_1 _inst_4 _inst_2))))
+Case conversion may be inaccurate. Consider using '#align affine_basis.affine_span_eq_top_of_to_matrix_left_inv AffineBasis.affineSpan_eq_top_of_toMatrix_left_invₓ'. -/
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a left inverse, then `p` spans the entire space. -/
theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (p : ι' → P)
@@ -111,6 +143,7 @@ theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (
exact affineCombination_mem_affineSpan hAi p
#align affine_basis.affine_span_eq_top_of_to_matrix_left_inv AffineBasis.affineSpan_eq_top_of_toMatrix_left_inv
+#print AffineBasis.toMatrix_vecMul_coords /-
/-- A change of basis formula for barycentric coordinates.
See also `affine_basis.to_matrix_inv_mul_affine_basis_to_matrix`. -/
@@ -123,9 +156,16 @@ theorem toMatrix_vecMul_coords (x : P) : (b.toMatrix b₂).vecMul (b₂.coords x
rw [Finset.map_affineCombination _ _ _ (b₂.sum_coord_apply_eq_one x)]
simp [Matrix.vecMul, Matrix.dotProduct, to_matrix_apply, coords]
#align affine_basis.to_matrix_vec_mul_coords AffineBasis.toMatrix_vecMul_coords
+-/
variable [DecidableEq ι]
+/- warning: affine_basis.to_matrix_mul_to_matrix -> AffineBasis.toMatrix_mul_toMatrix is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} ι ι k) (Matrix.mul.{u2, u1, u1, u1} ι ι ι k _inst_6 (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b₂)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b₂ ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasOne.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MulZeroClass.toHasZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))))) (AddMonoidWithOne.toOne.{u2} k (AddGroupWithOne.toAddMonoidWithOne.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k _inst_3))))))))
+but is expected to have type
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} ι ι k) (Matrix.mul.{u2, u1, u1, u1} ι ι ι k _inst_6 (NonUnitalNonAssocRing.toMul.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b₂)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b₂ ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.one.{u2, u1} ι k (fun (a : ι) (b : ι) => _inst_7 a b) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (Ring.toSemiring.{u2} k _inst_3))) (NonAssocRing.toOne.{u2} k (Ring.toNonAssocRing.{u2} k _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_mul_to_matrix AffineBasis.toMatrix_mul_toMatrixₓ'. -/
theorem toMatrix_mul_toMatrix : b.toMatrix b₂ ⬝ b₂.toMatrix b = 1 :=
by
ext (l m)
@@ -133,6 +173,12 @@ theorem toMatrix_mul_toMatrix : b.toMatrix b₂ ⬝ b₂.toMatrix b = 1 :=
rw [to_matrix_vec_mul_coords, coords_apply, ← to_matrix_apply, to_matrix_self]
#align affine_basis.to_matrix_mul_to_matrix AffineBasis.toMatrix_mul_toMatrix
+/- warning: affine_basis.is_unit_to_matrix -> AffineBasis.isUnit_toMatrix is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.ring.{u2, u1} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_7 a b) _inst_3)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4)) b₂))
+but is expected to have type
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_7 : DecidableEq.{succ u1} ι], IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.semiring.{u2, u1} ι k (Ring.toSemiring.{u2} k _inst_3) _inst_6 (fun (a : ι) (b : ι) => _inst_7 a b)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) b₂))
+Case conversion may be inaccurate. Consider using '#align affine_basis.is_unit_to_matrix AffineBasis.isUnit_toMatrixₓ'. -/
theorem isUnit_toMatrix : IsUnit (b.toMatrix b₂) :=
⟨{ val := b.toMatrix b₂
inv := b₂.toMatrix b
@@ -140,6 +186,12 @@ theorem isUnit_toMatrix : IsUnit (b.toMatrix b₂) :=
inv_val := b₂.toMatrix_mul_toMatrix b }, rfl⟩
#align affine_basis.is_unit_to_matrix AffineBasis.isUnit_toMatrix
+/- warning: affine_basis.is_unit_to_matrix_iff -> AffineBasis.isUnit_toMatrix_iff is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] [_inst_7 : DecidableEq.{succ u1} ι] [_inst_8 : Nontrivial.{u2} k] (p : ι -> P), Iff (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.ring.{u2, u1} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_7 a b) _inst_3)) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι p)) (And (AffineIndependent.{u2, u3, u4, u1} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι p) (Eq.{succ u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u4, succ u1} P ι p)) (Top.top.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toHasTop.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.completeLattice.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2)))))
+but is expected to have type
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : Ring.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k _inst_3) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 _inst_3 _inst_4) [_inst_6 : Fintype.{u1} ι] [_inst_7 : DecidableEq.{succ u1} ι] [_inst_8 : Nontrivial.{u2} k] (p : ι -> P), Iff (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.semiring.{u2, u1} ι k (Ring.toSemiring.{u2} k _inst_3) _inst_6 (fun (a : ι) (b : ι) => _inst_7 a b)))) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 _inst_3 _inst_4 b ι p)) (And (AffineIndependent.{u2, u3, u4, u1} k V P _inst_3 _inst_1 _inst_4 _inst_2 ι p) (Eq.{succ u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (affineSpan.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2 (Set.range.{u4, succ u1} P ι p)) (Top.top.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (CompleteLattice.toTop.{u4} (AffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2) (AffineSubspace.instCompleteLatticeAffineSubspace.{u2, u3, u4} k V P _inst_3 _inst_1 _inst_4 _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align affine_basis.is_unit_to_matrix_iff AffineBasis.isUnit_toMatrix_iffₓ'. -/
theorem isUnit_toMatrix_iff [Nontrivial k] (p : ι → P) :
IsUnit (b.toMatrix p) ↔ AffineIndependent k p ∧ affineSpan k (range p) = ⊤ :=
by
@@ -163,6 +215,12 @@ variable [CommRing k] [Module k V] [DecidableEq ι] [Fintype ι]
variable (b b₂ : AffineBasis ι k P)
+/- warning: affine_basis.to_matrix_inv_vec_mul_to_matrix -> AffineBasis.toMatrix_inv_vecMul_toMatrix is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.hasInv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
+but is expected to have type
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} (ι -> k) (Matrix.vecMul.{u2, u1, u1} ι ι k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) _inst_6 (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} ι ι k) (Matrix.inv.{u1, u2} ι k _inst_6 (fun (a : ι) (b : ι) => _inst_5 a b) _inst_3) (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)
+Case conversion may be inaccurate. Consider using '#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrixₓ'. -/
/-- A change of basis formula for barycentric coordinates.
See also `affine_basis.to_matrix_vec_mul_coords`. -/
@@ -176,6 +234,12 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
Matrix.vecMul_one]
#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrix
+/- warning: affine_basis.det_smul_coords_eq_cramer_coords -> AffineBasis.det_smul_coords_eq_cramer_coords is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{succ (max u1 u2)} (ι -> k) (SMul.smul.{u2, max u1 u2} k (ι -> k) (Function.hasSMul.{u1, u2, u2} ι k k (Mul.toSMul.{u2} k (Distrib.toHasMul.{u2} k (Ring.toDistrib.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (_x : LinearMap.{u2, u2, max u1 u2, max u1 u2} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) => (ι -> k) -> ι -> k) (LinearMap.hasCoeToFun.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.Function.module.{u1, u2, u2} ι k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (Semiring.toNonAssocSemiring.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (fun (_x : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) => ι -> P) (FunLike.hasCoeToFun.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => P) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4)) b₂)))) (coeFn.{max (succ u3) (succ u4) (succ (max u1 u2)), max (succ u4) (succ (max u1 u2))} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (fun (_x : AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) => P -> ι -> k) (AffineMap.hasCoeToFun.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toAddCommGroup.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.addTorsor.{u1, u2, u2} ι (fun (i : ι) => k) (fun (i : ι) => AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (fun (ᾰ : ι) => k) (fun (i : ι) => addGroupIsAddTorsor.{u2} k (AddGroupWithOne.toAddGroup.{u2} k (AddCommGroupWithOne.toAddGroupWithOne.{u2} k (Ring.toAddCommGroupWithOne.{u2} k (CommRing.toRing.{u2} k _inst_3))))))) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
+but is expected to have type
+ forall {ι : Type.{u1}} {k : Type.{u2}} {V : Type.{u3}} {P : Type.{u4}} [_inst_1 : AddCommGroup.{u3} V] [_inst_2 : AddTorsor.{u3, u4} V P (AddCommGroup.toAddGroup.{u3} V _inst_1)] [_inst_3 : CommRing.{u2} k] [_inst_4 : Module.{u2, u3} k V (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} V _inst_1)] [_inst_5 : DecidableEq.{succ u1} ι] [_inst_6 : Fintype.{u1} ι] (b : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (b₂ : AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) (x : P), Eq.{max (succ u1) (succ u2)} ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (HSMul.hSMul.{u2, max u1 u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (instHSMul.{u2, max u1 u2} k ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) x) (Pi.instSMul.{u1, u2, u2} ι k (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.2939 : ι) => k) (fun (i : ι) => Algebra.toSMul.{u2, u2} k k (CommRing.toCommSemiring.{u2} k _inst_3) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Algebra.id.{u2} k (CommRing.toCommSemiring.{u2} k _inst_3))))) (Matrix.det.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 k _inst_3 (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b₂) x)) (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} k k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (ι -> k) (ι -> k) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (ι -> k) (fun (_x : ι -> k) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : ι -> k) => ι -> k) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u1 u2, max u1 u2} k k (ι -> k) (ι -> k) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.addCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => k) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3)))))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.Matrix.Adjugate._hyg.274 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => Semiring.toModule.{u2} k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)))) (RingHom.id.{u2} k (NonAssocRing.toNonAssocSemiring.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (Matrix.cramer.{u1, u2} ι k (fun (a : ι) (b : ι) => _inst_5 a b) _inst_6 _inst_3 (Matrix.transpose.{u2, u1, u1} ι ι k (AffineBasis.toMatrix.{u1, u2, u3, u4, u1} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b ι (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (AffineBasis.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.AffineSpace.Basis._hyg.252 : ι) => P) _x) (AffineBasis.funLike.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4) b₂)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ (max u1 u2)), succ u4, succ (max u1 u2)} (AffineMap.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.Combination._hyg.3609 : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : P) => ι -> k) _x) (AffineMap.funLike.{u2, u3, u4, max u1 u2, max u1 u2} k V P (ι -> k) (ι -> k) (CommRing.toRing.{u2} k _inst_3) _inst_1 _inst_4 _inst_2 (Pi.addCommGroup.{u1, u2} ι (fun (i : ι) => k) (fun (i : ι) => Ring.toAddCommGroup.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Pi.module.{u1, u2, u2} ι (fun (i : ι) => k) k (Ring.toSemiring.{u2} k (CommRing.toRing.{u2} k _inst_3)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} k (NonAssocRing.toNonUnitalNonAssocRing.{u2} k (Ring.toNonAssocRing.{u2} k (CommRing.toRing.{u2} k _inst_3))))) (fun (i : ι) => AffineMap.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} k (CommRing.toRing.{u2} k _inst_3))) (Finset.instAddTorsorForAllAddGroupToAddGroupToAddGroupWithOne.{u2, u1} k (CommRing.toRing.{u2} k _inst_3) ι)) (AffineBasis.coords.{u1, u2, u3, u4} ι k V P _inst_1 _inst_2 (CommRing.toRing.{u2} k _inst_3) _inst_4 b) x))
+Case conversion may be inaccurate. Consider using '#align affine_basis.det_smul_coords_eq_cramer_coords AffineBasis.det_smul_coords_eq_cramer_coordsₓ'. -/
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
theorem det_smul_coords_eq_cramer_coords (x : P) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/b685f506164f8d17a6404048bc4d696739c5d976
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
! This file was ported from Lean 3 source module linear_algebra.affine_space.matrix
-! leanprover-community/mathlib commit 2f4cdce0c2f2f3b8cd58f05d556d03b468e1eb2e
+! leanprover-community/mathlib commit 2de9c37fa71dde2f1c6feff19876dd6a7b1519f0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -99,7 +99,7 @@ theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (
_ = ∑ l, (A ⬝ b.to_matrix p) i l := rfl
_ = 1 := by simp [hA, Matrix.one_apply, Finset.filter_eq]
- have hbi : b i = finset.univ.affine_combination p (A i) :=
+ have hbi : b i = finset.univ.affine_combination k p (A i) :=
by
apply b.ext_elem
intro j
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -50,16 +50,17 @@ theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
rw [toMatrix_apply, coord_apply, Matrix.one_eq_pi_single, Pi.single_apply]
#align affine_basis.to_matrix_self AffineBasis.toMatrix_self
-variable {ι' : Type*} [Fintype ι'] [Fintype ι] (b₂ : AffineBasis ι k P)
+variable {ι' : Type*}
-theorem toMatrix_row_sum_one {ι' : Type*} (q : ι' → P) (i : ι') : ∑ j, b.toMatrix q i j = 1 := by
+theorem toMatrix_row_sum_one [Fintype ι] (q : ι' → P) (i : ι') : ∑ j, b.toMatrix q i j = 1 := by
simp
#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_one
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a right inverse, then `p` is affine independent. -/
-theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P) {A : Matrix ι ι' k}
- (hA : b.toMatrix p * A = 1) : AffineIndependent k p := by
+theorem affineIndependent_of_toMatrix_right_inv [Fintype ι] [Finite ι'] [DecidableEq ι']
+ (p : ι' → P) {A : Matrix ι ι' k} (hA : b.toMatrix p * A = 1) : AffineIndependent k p := by
+ cases nonempty_fintype ι'
rw [affineIndependent_iff_eq_of_fintype_affineCombination_eq]
intro w₁ w₂ hw₁ hw₂ hweq
have hweq' : w₁ ᵥ* b.toMatrix p = w₂ ᵥ* b.toMatrix p := by
@@ -77,8 +78,10 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a left inverse, then `p` spans the entire space. -/
-theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (p : ι' → P)
- {A : Matrix ι ι' k} (hA : A * b.toMatrix p = 1) : affineSpan k (range p) = ⊤ := by
+theorem affineSpan_eq_top_of_toMatrix_left_inv [Finite ι] [Fintype ι'] [DecidableEq ι]
+ [Nontrivial k] (p : ι' → P) {A : Matrix ι ι' k} (hA : A * b.toMatrix p = 1) :
+ affineSpan k (range p) = ⊤ := by
+ cases nonempty_fintype ι
suffices ∀ i, b i ∈ affineSpan k (range p) by
rw [eq_top_iff, ← b.tot, affineSpan_le]
rintro q ⟨i, rfl⟩
@@ -102,6 +105,8 @@ theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (
exact affineCombination_mem_affineSpan hAi p
#align affine_basis.affine_span_eq_top_of_to_matrix_left_inv AffineBasis.affineSpan_eq_top_of_toMatrix_left_inv
+variable [Fintype ι] (b₂ : AffineBasis ι k P)
+
/-- A change of basis formula for barycentric coordinates.
See also `AffineBasis.toMatrix_inv_vecMul_toMatrix`. -/
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)
@@ -23,7 +23,6 @@ open Set
universe u₁ u₂ u₃ u₄
variable {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄}
-
variable [AddCommGroup V] [AffineSpace V P]
namespace AffineBasis
@@ -147,7 +146,6 @@ end Ring
section CommRing
variable [CommRing k] [Module k V] [DecidableEq ι] [Fintype ι]
-
variable (b b₂ : AffineBasis ι k P)
/-- A change of basis formula for barycentric coordinates.
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>
@@ -63,7 +63,7 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
(hA : b.toMatrix p * A = 1) : AffineIndependent k p := by
rw [affineIndependent_iff_eq_of_fintype_affineCombination_eq]
intro w₁ w₂ hw₁ hw₂ hweq
- have hweq' : (b.toMatrix p).vecMul w₁ = (b.toMatrix p).vecMul w₂ := by
+ have hweq' : w₁ ᵥ* b.toMatrix p = w₂ ᵥ* b.toMatrix p := by
ext j
change (∑ i, w₁ i • b.coord j (p i)) = ∑ i, w₂ i • b.coord j (p i)
-- Porting note: Added `u` because `∘` was causing trouble
@@ -72,7 +72,7 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
← Finset.univ.affineCombination_eq_linear_combination _ _ hw₂, u,
← Finset.univ.map_affineCombination p w₁ hw₁, ← Finset.univ.map_affineCombination p w₂ hw₂,
hweq]
- replace hweq' := congr_arg (fun w => A.vecMul w) hweq'
+ replace hweq' := congr_arg (fun w => w ᵥ* A) hweq'
simpa only [Matrix.vecMul_vecMul, hA, Matrix.vecMul_one] using hweq'
#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_inv
@@ -107,7 +107,7 @@ theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (
See also `AffineBasis.toMatrix_inv_vecMul_toMatrix`. -/
@[simp]
-theorem toMatrix_vecMul_coords (x : P) : (b.toMatrix b₂).vecMul (b₂.coords x) = b.coords x := by
+theorem toMatrix_vecMul_coords (x : P) : b₂.coords x ᵥ* b.toMatrix b₂ = b.coords x := by
ext j
change _ = b.coord j x
conv_rhs => rw [← b₂.affineCombination_coord_eq_self x]
@@ -119,7 +119,7 @@ variable [DecidableEq ι]
theorem toMatrix_mul_toMatrix : b.toMatrix b₂ * b₂.toMatrix b = 1 := by
ext l m
- change (b₂.toMatrix b).vecMul (b.coords (b₂ l)) m = _
+ change (b.coords (b₂ l) ᵥ* b₂.toMatrix b) m = _
rw [toMatrix_vecMul_coords, coords_apply, ← toMatrix_apply, toMatrix_self]
#align affine_basis.to_matrix_mul_to_matrix AffineBasis.toMatrix_mul_toMatrix
@@ -155,7 +155,7 @@ variable (b b₂ : AffineBasis ι k P)
See also `AffineBasis.toMatrix_vecMul_coords`. -/
@[simp]
theorem toMatrix_inv_vecMul_toMatrix (x : P) :
- (b.toMatrix b₂)⁻¹.vecMul (b.coords x) = b₂.coords x := by
+ b.coords x ᵥ* (b.toMatrix b₂)⁻¹ = b₂.coords x := by
have hu := b.isUnit_toMatrix b₂
rw [Matrix.isUnit_iff_isUnit_det] at hu
rw [← b.toMatrix_vecMul_coords b₂, Matrix.vecMul_vecMul, Matrix.mul_nonsing_inv _ hu,
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-/
import Mathlib.LinearAlgebra.AffineSpace.Basis
-import Mathlib.LinearAlgebra.Determinant
+import Mathlib.LinearAlgebra.Matrix.NonsingularInverse
#align_import linear_algebra.affine_space.matrix from "leanprover-community/mathlib"@"2de9c37fa71dde2f1c6feff19876dd6a7b1519f0"
⬝
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).
@@ -60,7 +60,7 @@ theorem toMatrix_row_sum_one {ι' : Type*} (q : ι' → P) (i : ι') : ∑ j, b.
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a right inverse, then `p` is affine independent. -/
theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P) {A : Matrix ι ι' k}
- (hA : b.toMatrix p ⬝ A = 1) : AffineIndependent k p := by
+ (hA : b.toMatrix p * A = 1) : AffineIndependent k p := by
rw [affineIndependent_iff_eq_of_fintype_affineCombination_eq]
intro w₁ w₂ hw₁ hw₂ hweq
have hweq' : (b.toMatrix p).vecMul w₁ = (b.toMatrix p).vecMul w₂ := by
@@ -73,13 +73,13 @@ theorem affineIndependent_of_toMatrix_right_inv [DecidableEq ι'] (p : ι' → P
← Finset.univ.map_affineCombination p w₁ hw₁, ← Finset.univ.map_affineCombination p w₂ hw₂,
hweq]
replace hweq' := congr_arg (fun w => A.vecMul w) hweq'
- simpa only [Matrix.vecMul_vecMul, ← Matrix.mul_eq_mul, hA, Matrix.vecMul_one] using hweq'
+ simpa only [Matrix.vecMul_vecMul, hA, Matrix.vecMul_one] using hweq'
#align affine_basis.affine_independent_of_to_matrix_right_inv AffineBasis.affineIndependent_of_toMatrix_right_inv
/-- Given a family of points `p : ι' → P` and an affine basis `b`, if the matrix whose rows are the
coordinates of `p` with respect `b` has a left inverse, then `p` spans the entire space. -/
theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (p : ι' → P)
- {A : Matrix ι ι' k} (hA : A ⬝ b.toMatrix p = 1) : affineSpan k (range p) = ⊤ := by
+ {A : Matrix ι ι' k} (hA : A * b.toMatrix p = 1) : affineSpan k (range p) = ⊤ := by
suffices ∀ i, b i ∈ affineSpan k (range p) by
rw [eq_top_iff, ← b.tot, affineSpan_le]
rintro q ⟨i, rfl⟩
@@ -90,14 +90,14 @@ theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (
∑ j, A i j = ∑ j, A i j * ∑ l, b.toMatrix p j l := by simp
_ = ∑ j, ∑ l, A i j * b.toMatrix p j l := by simp_rw [Finset.mul_sum]
_ = ∑ l, ∑ j, A i j * b.toMatrix p j l := by rw [Finset.sum_comm]
- _ = ∑ l, (A ⬝ b.toMatrix p) i l := rfl
+ _ = ∑ l, (A * b.toMatrix p) i l := rfl
_ = 1 := by simp [hA, Matrix.one_apply, Finset.filter_eq]
have hbi : b i = Finset.univ.affineCombination k p (A i) := by
apply b.ext_elem
intro j
rw [b.coord_apply, Finset.univ.map_affineCombination _ _ hAi,
Finset.univ.affineCombination_eq_linear_combination _ _ hAi]
- change _ = (A ⬝ b.toMatrix p) i j
+ change _ = (A * b.toMatrix p) i j
simp_rw [hA, Matrix.one_apply, @eq_comm _ i j]
rw [hbi]
exact affineCombination_mem_affineSpan hAi p
@@ -117,7 +117,7 @@ theorem toMatrix_vecMul_coords (x : P) : (b.toMatrix b₂).vecMul (b₂.coords x
variable [DecidableEq ι]
-theorem toMatrix_mul_toMatrix : b.toMatrix b₂ ⬝ b₂.toMatrix b = 1 := by
+theorem toMatrix_mul_toMatrix : b.toMatrix b₂ * b₂.toMatrix b = 1 := by
ext l m
change (b₂.toMatrix b).vecMul (b.coords (b₂ l)) m = _
rw [toMatrix_vecMul_coords, coords_apply, ← toMatrix_apply, toMatrix_self]
@@ -134,7 +134,6 @@ theorem isUnit_toMatrix_iff [Nontrivial k] (p : ι → P) :
IsUnit (b.toMatrix p) ↔ AffineIndependent k p ∧ affineSpan k (range p) = ⊤ := by
constructor
· rintro ⟨⟨B, A, hA, hA'⟩, rfl : B = b.toMatrix p⟩
- rw [Matrix.mul_eq_mul] at hA hA'
exact ⟨b.affineIndependent_of_toMatrix_right_inv p hA,
b.affineSpan_eq_top_of_toMatrix_left_inv p hA'⟩
· rintro ⟨h_tot, h_ind⟩
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -36,12 +36,12 @@ variable [Ring k] [Module k V] (b : AffineBasis ι k P)
rows are the barycentric coordinates of `q` with respect to `p`.
It is an affine equivalent of `Basis.toMatrix`. -/
-noncomputable def toMatrix {ι' : Type _} (q : ι' → P) : Matrix ι' ι k :=
+noncomputable def toMatrix {ι' : Type*} (q : ι' → P) : Matrix ι' ι k :=
fun i j => b.coord j (q i)
#align affine_basis.to_matrix AffineBasis.toMatrix
@[simp]
-theorem toMatrix_apply {ι' : Type _} (q : ι' → P) (i : ι') (j : ι) :
+theorem toMatrix_apply {ι' : Type*} (q : ι' → P) (i : ι') (j : ι) :
b.toMatrix q i j = b.coord j (q i) := rfl
#align affine_basis.to_matrix_apply AffineBasis.toMatrix_apply
@@ -51,9 +51,9 @@ theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
rw [toMatrix_apply, coord_apply, Matrix.one_eq_pi_single, Pi.single_apply]
#align affine_basis.to_matrix_self AffineBasis.toMatrix_self
-variable {ι' : Type _} [Fintype ι'] [Fintype ι] (b₂ : AffineBasis ι k P)
+variable {ι' : Type*} [Fintype ι'] [Fintype ι] (b₂ : AffineBasis ι k P)
-theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : ∑ j, b.toMatrix q i j = 1 := by
+theorem toMatrix_row_sum_one {ι' : Type*} (q : ι' → P) (i : ι') : ∑ j, b.toMatrix q i j = 1 := by
simp
#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_one
@@ -2,15 +2,12 @@
Copyright (c) 2021 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-
-! This file was ported from Lean 3 source module linear_algebra.affine_space.matrix
-! leanprover-community/mathlib commit 2de9c37fa71dde2f1c6feff19876dd6a7b1519f0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.LinearAlgebra.AffineSpace.Basis
import Mathlib.LinearAlgebra.Determinant
+#align_import linear_algebra.affine_space.matrix from "leanprover-community/mathlib"@"2de9c37fa71dde2f1c6feff19876dd6a7b1519f0"
+
/-!
# Matrix results for barycentric co-ordinates
∑'
precedence (#5615)
∑
, ∏
and variants).([^a-zA-Zα-ωΑ-Ω'𝓝ℳ₀𝕂ₛ)]) \(([∑∏][^()∑∏]*,[^()∑∏:]*)\) ([⊂⊆=<≤])
replaced by $1 $2 $3
@@ -56,7 +56,7 @@ theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) :=
variable {ι' : Type _} [Fintype ι'] [Fintype ι] (b₂ : AffineBasis ι k P)
-theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : (∑ j, b.toMatrix q i j) = 1 := by
+theorem toMatrix_row_sum_one {ι' : Type _} (q : ι' → P) (i : ι') : ∑ j, b.toMatrix q i j = 1 := by
simp
#align affine_basis.to_matrix_row_sum_one AffineBasis.toMatrix_row_sum_one
@@ -88,9 +88,9 @@ theorem affineSpan_eq_top_of_toMatrix_left_inv [DecidableEq ι] [Nontrivial k] (
rintro q ⟨i, rfl⟩
exact this i
intro i
- have hAi : (∑ j, A i j) = 1 := by
+ have hAi : ∑ j, A i j = 1 := by
calc
- (∑ j, A i j) = ∑ j, A i j * ∑ l, b.toMatrix p j l := by simp
+ ∑ j, A i j = ∑ j, A i j * ∑ l, b.toMatrix p j l := by simp
_ = ∑ j, ∑ l, A i j * b.toMatrix p j l := by simp_rw [Finset.mul_sum]
_ = ∑ l, ∑ j, A i j * b.toMatrix p j l := by rw [Finset.sum_comm]
_ = ∑ l, (A ⬝ b.toMatrix p) i l := rfl
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>
@@ -50,7 +50,7 @@ theorem toMatrix_apply {ι' : Type _} (q : ι' → P) (i : ι') (j : ι) :
@[simp]
theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) := by
- ext (i j)
+ ext i j
rw [toMatrix_apply, coord_apply, Matrix.one_eq_pi_single, Pi.single_apply]
#align affine_basis.to_matrix_self AffineBasis.toMatrix_self
@@ -121,7 +121,7 @@ theorem toMatrix_vecMul_coords (x : P) : (b.toMatrix b₂).vecMul (b₂.coords x
variable [DecidableEq ι]
theorem toMatrix_mul_toMatrix : b.toMatrix b₂ ⬝ b₂.toMatrix b = 1 := by
- ext (l m)
+ ext l m
change (b₂.toMatrix b).vecMul (b.coords (b₂ l)) m = _
rw [toMatrix_vecMul_coords, coords_apply, ← toMatrix_apply, toMatrix_self]
#align affine_basis.to_matrix_mul_to_matrix AffineBasis.toMatrix_mul_toMatrix
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>
@@ -166,7 +166,6 @@ theorem toMatrix_inv_vecMul_toMatrix (x : P) :
Matrix.vecMul_one]
#align affine_basis.to_matrix_inv_vec_mul_to_matrix AffineBasis.toMatrix_inv_vecMul_toMatrix
-set_option synthInstance.etaExperiment true in
/-- If we fix a background affine basis `b`, then for any other basis `b₂`, we can characterise
the barycentric coordinates provided by `b₂` in terms of determinants relative to `b`. -/
theorem det_smul_coords_eq_cramer_coords (x : P) :
The unported dependencies are