Skip to content

Commit ea3ee6a

Browse files
committed
chore: rename Finsupp.total (#16277)
to `Finsupp.linearCombination`.
1 parent 99771c3 commit ea3ee6a

File tree

66 files changed

+664
-496
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+664
-496
lines changed

Archive/Sensitivity.lean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,8 @@ theorem huang_degree_theorem (H : Set (Q m.succ)) (hH : Card H ≥ 2 ^ m + 1) :
425425
_ =
426426
|(coeffs y).sum fun (i : Q m.succ) (a : ℝ) =>
427427
a • (ε q ∘ f m.succ ∘ fun i : Q m.succ => e i) i| := by
428-
erw [(f m.succ).map_finsupp_total, (ε q).map_finsupp_total, Finsupp.total_apply]
428+
erw [(f m.succ).map_finsupp_linearCombination, (ε q).map_finsupp_linearCombination,
429+
Finsupp.linearCombination_apply]
429430
_ ≤ ∑ p ∈ (coeffs y).support, |coeffs y p * (ε q <| f m.succ <| e p)| :=
430431
(norm_sum_le _ fun p => coeffs y p * _)
431432
_ = ∑ p ∈ (coeffs y).support, |coeffs y p| * ite (p ∈ q.adjacent) 1 0 := by

Mathlib/Algebra/Algebra/Subalgebra/Operations.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ theorem mem_of_finset_sum_eq_one_of_pow_smul_mem
6767
exact ⟨⟨_, hn i⟩, rfl⟩
6868

6969
theorem mem_of_span_eq_top_of_smul_pow_mem
70-
(s : Set S) (l : s →₀ S) (hs : Finsupp.total S ((↑) : s → S) l = 1)
70+
(s : Set S) (l : s →₀ S) (hs : Finsupp.linearCombination S ((↑) : s → S) l = 1)
7171
(hs' : s ⊆ S') (hl : ∀ i, l i ∈ S') (x : S) (H : ∀ r : s, ∃ n : ℕ, (r : S) ^ n • x ∈ S') :
7272
x ∈ S' :=
7373
mem_of_finset_sum_eq_one_of_pow_smul_mem S' l.support (↑) l hs (fun x => hs' x.2) hl x H

Mathlib/Algebra/Category/ModuleCat/Projective.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ instance moduleCat_enoughProjectives : EnoughProjectives (ModuleCat.{max u v} R)
5959
f := Finsupp.basisSingleOne.constr ℕ _root_.id
6060
epi := (epi_iff_range_eq_top _).mpr
6161
(range_eq_top.2 fun m => ⟨Finsupp.single m (1 : R), by
62-
-- Porting note: simp [Finsupp.total_single] fails but rw succeeds
62+
-- Porting note: simp [Finsupp.linearCombination_single] fails but rw succeeds
6363
dsimp [Basis.constr]
6464
simp only [Finsupp.lmapDomain_id, comp_id]
6565
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
66-
erw [Finsupp.total_single]
66+
erw [Finsupp.linearCombination_single]
6767
rw [one_smul]
6868
rfl ⟩) }⟩
6969

Mathlib/Algebra/DirectSum/Module.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ universe u v w u₁
2828

2929
namespace DirectSum
3030

31-
open DirectSum
31+
open DirectSum Finsupp
3232

3333
section General
3434

@@ -335,7 +335,7 @@ theorem IsInternal.collectedBasis_coe (h : IsInternal A) {α : ι → Type*}
335335
-- Porting note: was
336336
-- simp only [IsInternal.collectedBasis, toModule, coeLinearMap, Basis.coe_ofRepr,
337337
-- Basis.repr_symm_apply, DFinsupp.lsum_apply_apply, DFinsupp.mapRange.linearEquiv_apply,
338-
-- DFinsupp.mapRange.linearEquiv_symm, DFinsupp.mapRange_single, Finsupp.total_single,
338+
-- DFinsupp.mapRange.linearEquiv_symm, DFinsupp.mapRange_single, linearCombination_single,
339339
-- LinearEquiv.ofBijective_apply, LinearEquiv.symm_symm, LinearEquiv.symm_trans_apply, one_smul,
340340
-- sigmaFinsuppAddEquivDFinsupp_apply, sigmaFinsuppEquivDFinsupp_single,
341341
-- sigmaFinsuppLequivDFinsupp_apply]
@@ -346,7 +346,7 @@ theorem IsInternal.collectedBasis_coe (h : IsInternal A) {α : ι → Type*}
346346
sigmaFinsuppAddEquivDFinsupp_apply]
347347
rw [DFinsupp.mapRange.linearEquiv_symm]
348348
erw [DFinsupp.mapRange.linearEquiv_apply]
349-
simp only [DFinsupp.mapRange_single, Basis.repr_symm_apply, Finsupp.total_single, one_smul,
349+
simp only [DFinsupp.mapRange_single, Basis.repr_symm_apply, linearCombination_single, one_smul,
350350
toModule]
351351
erw [DFinsupp.lsum_single]
352352
simp only [Submodule.coeSubtype]

Mathlib/Algebra/Lie/BaseChange.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,10 @@ def baseChange : LieSubmodule A (A ⊗[R] L) (A ⊗[R] M) :=
169169
intro x m hm
170170
simp only [AddSubsemigroup.mem_carrier, AddSubmonoid.mem_toSubsemigroup,
171171
Submodule.mem_toAddSubmonoid] at hm ⊢
172-
obtain ⟨c, rfl⟩ := (Finsupp.mem_span_iff_total _ _ _).mp hm
172+
obtain ⟨c, rfl⟩ := (Finsupp.mem_span_iff_linearCombination _ _ _).mp hm
173173
refine x.induction_on (by simp) (fun a y ↦ ?_) (fun y z hy hz ↦ ?_)
174174
· change toEnd A (A ⊗[R] L) (A ⊗[R] M) _ _ ∈ _
175-
simp_rw [Finsupp.total_apply, Finsupp.sum, map_sum, map_smul, toEnd_apply_apply]
175+
simp_rw [Finsupp.linearCombination_apply, Finsupp.sum, map_sum, map_smul, toEnd_apply_apply]
176176
suffices ∀ n : (N : Submodule R M).map (TensorProduct.mk R A M 1),
177177
⁅a ⊗ₜ[R] y, (n : A ⊗[R] M)⁆ ∈ (N : Submodule R M).baseChange A by
178178
exact Submodule.sum_mem _ fun n _ ↦ Submodule.smul_mem _ _ (this n)

Mathlib/Algebra/Module/FinitePresentation.lean

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ For finitely presented algebras, see `Algebra.FinitePresentation`
4848
in file `Mathlib.RingTheory.FinitePresentation`.
4949
-/
5050

51+
open Finsupp
52+
5153
section Semiring
5254
variable (R M) [Semiring R] [AddCommMonoid M] [Module R M]
5355

@@ -57,7 +59,7 @@ and the kernel of the presentation `Rˢ → M` is also finitely generated.
5759
-/
5860
class Module.FinitePresentation : Prop where
5961
out : ∃ (s : Finset M), Submodule.span R (s : Set M) = ⊤ ∧
60-
(LinearMap.ker (Finsupp.total R ((↑) : s → M))).FG
62+
(LinearMap.ker (Finsupp.linearCombination R ((↑) : s → M))).FG
6163

6264
instance (priority := 100) [h : Module.FinitePresentation R M] : Module.Finite R M := by
6365
obtain ⟨s, hs₁, _⟩ := h
@@ -78,10 +80,10 @@ theorem Module.FinitePresentation.equiv_quotient [fp : Module.FinitePresentation
7880
Module.Free R L ∧ Module.Finite R L ∧ K.FG := by
7981
obtain ⟨ι, ⟨hι₁, hι₂⟩⟩ := fp
8082
use ι →₀ R, inferInstance, inferInstance
81-
use LinearMap.ker (Finsupp.total R Subtype.val)
83+
use LinearMap.ker (Finsupp.linearCombination R Subtype.val)
8284
refine ⟨(LinearMap.quotKerEquivOfSurjective _ ?_).symm, inferInstance, inferInstance, hι₂⟩
8385
apply LinearMap.range_eq_top.mp
84-
simpa only [Finsupp.range_total, Subtype.range_coe_subtype, Finset.setOf_mem]
86+
simpa only [Finsupp.range_linearCombination, Subtype.range_coe_subtype, Finset.setOf_mem]
8587

8688
-- Ideally this should be an instance but it makes mathlib much slower.
8789
lemma Module.finitePresentation_of_finite [IsNoetherianRing R] [h : Module.Finite R M] :
@@ -119,12 +121,12 @@ lemma Module.finitePresentation_of_free_of_surjective [Module.Free R M] [Module.
119121
constructor
120122
· intro hx
121123
refine ⟨b.repr.symm (x.mapDomain σ), ?_, ?_⟩
122-
· simp [Finsupp.apply_total, hσ₂, hx]
124+
· simp [Finsupp.apply_linearCombination, hσ₂, hx]
123125
· simp only [f, LinearMap.comp_apply, b.repr.apply_symm_apply,
124126
LinearEquiv.coe_toLinearMap, Finsupp.lmapDomain_apply]
125127
rw [← Finsupp.mapDomain_comp, hσ₁, Finsupp.mapDomain_id]
126128
· rintro ⟨y, hy, rfl⟩
127-
simp [f, hπ, ← Finsupp.apply_total, hy]
129+
simp [f, hπ, ← Finsupp.apply_linearCombination, hy]
128130

129131
-- Ideally this should be an instance but it makes mathlib much slower.
130132
variable (R M) in
@@ -145,12 +147,12 @@ lemma Module.finitePresentation_of_surjective [h : Module.FinitePresentation R M
145147
classical
146148
obtain ⟨s, hs, hs'⟩ := h
147149
obtain ⟨t, ht⟩ := hl'
148-
have H : Function.Surjective (Finsupp.total R ((↑) : s → M)) :=
149-
LinearMap.range_eq_top.mp (by rw [Finsupp.range_total, Subtype.range_val, ← hs]; rfl)
150-
apply Module.finitePresentation_of_free_of_surjective (l ∘ₗ Finsupp.total R Subtype.val)
150+
have H : Function.Surjective (Finsupp.linearCombination R ((↑) : s → M)) :=
151+
LinearMap.range_eq_top.mp (by rw [range_linearCombination, Subtype.range_val, ← hs]; rfl)
152+
apply Module.finitePresentation_of_free_of_surjective (l ∘ₗ linearCombination R Subtype.val)
151153
(hl.comp H)
152154
choose σ hσ using (show _ from H)
153-
have : Finsupp.total R Subtype.val '' (σ '' t) = t := by
155+
have : Finsupp.linearCombination R Subtype.val '' (σ '' t) = t := by
154156
simp only [Set.image_image, hσ, Set.image_id']
155157
rw [LinearMap.ker_comp, ← ht, ← this, ← Submodule.map_span, Submodule.comap_map_eq,
156158
← Finset.coe_image]
@@ -161,11 +163,11 @@ lemma Module.FinitePresentation.fg_ker [Module.Finite R M]
161163
(LinearMap.ker l).FG := by
162164
classical
163165
obtain ⟨s, hs, hs'⟩ := h
164-
have H : Function.Surjective (Finsupp.total R ((↑) : s → N)) :=
165-
LinearMap.range_eq_top.mp (by rw [Finsupp.range_total, Subtype.range_val, ← hs]; rfl)
166-
obtain ⟨f, hf⟩ : ∃ f : (s →₀ R) →ₗ[R] M, l ∘ₗ f = (Finsupp.total R Subtype.val) := by
166+
have H : Function.Surjective (Finsupp.linearCombination R ((↑) : s → N)) :=
167+
LinearMap.range_eq_top.mp (by rw [range_linearCombination, Subtype.range_val, ← hs]; rfl)
168+
obtain ⟨f, hf⟩ : ∃ f : (s →₀ R) →ₗ[R] M, l ∘ₗ f = (Finsupp.linearCombination R Subtype.val) := by
167169
choose f hf using show _ from hl
168-
exact ⟨Finsupp.total R (fun i ↦ f i), by ext; simp [hf]⟩
170+
exact ⟨Finsupp.linearCombination R (fun i ↦ f i), by ext; simp [hf]⟩
169171
have : (LinearMap.ker l).map (LinearMap.range f).mkQ = ⊤ := by
170172
rw [← top_le_iff]
171173
rintro x -
@@ -192,9 +194,9 @@ lemma Module.finitePresentation_of_ker [Module.FinitePresentation R N]
192194
· rw [Submodule.map_top, LinearMap.range_eq_top.mpr hl]; exact Module.Finite.out
193195
· rw [top_inf_eq, ← Submodule.fg_top]; exact Module.Finite.out
194196
refine ⟨s, hs, ?_⟩
195-
let π := Finsupp.total R ((↑) : s → M)
197+
let π := Finsupp.linearCombination R ((↑) : s → M)
196198
have H : Function.Surjective π :=
197-
LinearMap.range_eq_top.mp (by rw [Finsupp.range_total, Subtype.range_val, ← hs]; rfl)
199+
LinearMap.range_eq_top.mp (by rw [range_linearCombination, Subtype.range_val, ← hs]; rfl)
198200
have inst : Module.Finite R (LinearMap.ker (l ∘ₗ π)) := by
199201
constructor
200202
rw [Submodule.fg_top]; exact Module.FinitePresentation.fg_ker _ (hl.comp H)
@@ -227,23 +229,24 @@ lemma Module.FinitePresentation.exists_lift_of_isLocalizedModule
227229
[h : Module.FinitePresentation R M] (g : M →ₗ[R] N') :
228230
∃ (h : M →ₗ[R] N) (s : S), f ∘ₗ h = s • g := by
229231
obtain ⟨σ, hσ, τ, hτ⟩ := h
230-
let π := Finsupp.total R ((↑) : σ → M)
232+
let π := Finsupp.linearCombination R ((↑) : σ → M)
231233
have hπ : Function.Surjective π :=
232-
LinearMap.range_eq_top.mp (by rw [Finsupp.range_total, Subtype.range_val, ← hσ]; rfl)
234+
LinearMap.range_eq_top.mp (by rw [range_linearCombination, Subtype.range_val, ← hσ]; rfl)
233235
classical
234236
choose s hs using IsLocalizedModule.surj S f
235237
let i : σ → N :=
236238
fun x ↦ (∏ j ∈ σ.erase x.1, (s (g j)).2) • (s (g x)).1
237239
let s₀ := ∏ j ∈ σ, (s (g j)).2
238-
have hi : f ∘ₗ Finsupp.total R i = (s₀ • g) ∘ₗ π := by
240+
have hi : f ∘ₗ Finsupp.linearCombination R i = (s₀ • g) ∘ₗ π := by
239241
ext j
240-
simp only [LinearMap.coe_comp, Function.comp_apply, Finsupp.lsingle_apply, Finsupp.total_single,
241-
one_smul, LinearMap.map_smul_of_tower, ← hs, LinearMap.smul_apply, i, s₀, π]
242+
simp only [LinearMap.coe_comp, Function.comp_apply, Finsupp.lsingle_apply,
243+
linearCombination_single, one_smul, LinearMap.map_smul_of_tower, ← hs, LinearMap.smul_apply,
244+
i, s₀, π]
242245
rw [← mul_smul, Finset.prod_erase_mul]
243246
exact j.prop
244-
have : ∀ x : τ, ∃ s : S, s • (Finsupp.total R i x) = 0 := by
247+
have : ∀ x : τ, ∃ s : S, s • (Finsupp.linearCombination R i x) = 0 := by
245248
intros x
246-
convert_to ∃ s : S, s • (Finsupp.total R i x) = s • 0
249+
convert_to ∃ s : S, s • (Finsupp.linearCombination R i x) = s • 0
247250
· simp only [smul_zero]
248251
apply IsLocalizedModule.exists_of_eq (S := S) (f := f)
249252
rw [← LinearMap.comp_apply, map_zero, hi, LinearMap.comp_apply]
@@ -252,7 +255,7 @@ lemma Module.FinitePresentation.exists_lift_of_isLocalizedModule
252255
exact Submodule.subset_span x.prop
253256
choose s' hs' using this
254257
let s₁ := ∏ i : τ, s' i
255-
have : LinearMap.ker π ≤ LinearMap.ker (s₁ • Finsupp.total R i) := by
258+
have : LinearMap.ker π ≤ LinearMap.ker (s₁ • Finsupp.linearCombination R i) := by
256259
rw [← hτ, Submodule.span_le]
257260
intro x hxσ
258261
simp only [s₁]

Mathlib/Algebra/Module/Projective.lean

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ open Finsupp
7272
definitions. -/
7373
class Module.Projective (R : Type*) [Semiring R] (P : Type*) [AddCommMonoid P] [Module R P] :
7474
Prop where
75-
out : ∃ s : P →ₗ[R] P →₀ R, Function.LeftInverse (Finsupp.total R id) s
75+
out : ∃ s : P →ₗ[R] P →₀ R, Function.LeftInverse (Finsupp.linearCombination R id) s
7676

7777
namespace Module
7878

@@ -82,11 +82,11 @@ variable {R : Type*} [Semiring R] {P : Type*} [AddCommMonoid P] [Module R P] {M
8282
[AddCommMonoid M] [Module R M] {N : Type*} [AddCommMonoid N] [Module R N]
8383

8484
theorem projective_def :
85-
Projective R P ↔ ∃ s : P →ₗ[R] P →₀ R, Function.LeftInverse (Finsupp.total R id) s :=
85+
Projective R P ↔ ∃ s : P →ₗ[R] P →₀ R, Function.LeftInverse (linearCombination R id) s :=
8686
fun h => h.1, fun h => ⟨h⟩⟩
8787

8888
theorem projective_def' :
89-
Projective R P ↔ ∃ s : P →ₗ[R] P →₀ R, Finsupp.total R id ∘ₗ s = .id := by
89+
Projective R P ↔ ∃ s : P →ₗ[R] P →₀ R, Finsupp.linearCombination R id ∘ₗ s = .id := by
9090
simp_rw [projective_def, DFunLike.ext_iff, Function.LeftInverse, comp_apply, id_apply]
9191

9292
/-- A projective R-module has the property that maps from it lift along surjections. -/
@@ -95,20 +95,20 @@ theorem projective_lifting_property [h : Projective R P] (f : M →ₗ[R] N) (g
9595
/-
9696
Here's the first step of the proof.
9797
Recall that `X →₀ R` is Lean's way of talking about the free `R`-module
98-
on a type `X`. The universal property `Finsupp.total` says that to a map
98+
on a type `X`. The universal property `Finsupp.linearCombination` says that to a map
9999
`X → N` from a type to an `R`-module, we get an associated R-module map
100100
`(X →₀ R) →ₗ N`. Apply this to a (noncomputable) map `P → M` coming from the map
101101
`P →ₗ N` and a random splitting of the surjection `M →ₗ N`, and we get
102102
a map `φ : (P →₀ R) →ₗ M`.
103103
-/
104-
let φ : (P →₀ R) →ₗ[R] M := Finsupp.total _ fun p => Function.surjInv hf (g p)
104+
let φ : (P →₀ R) →ₗ[R] M := Finsupp.linearCombination _ fun p => Function.surjInv hf (g p)
105105
-- By projectivity we have a map `P →ₗ (P →₀ R)`;
106106
cases' h.out with s hs
107107
-- Compose to get `P →ₗ M`. This works.
108108
use φ.comp s
109109
ext p
110110
conv_rhs => rw [← hs p]
111-
simp [φ, Finsupp.total_apply, Function.surjInv_eq hf, map_finsupp_sum]
111+
simp [φ, Finsupp.linearCombination_apply, Function.surjInv_eq hf, map_finsupp_sum]
112112

113113
/-- A module which satisfies the universal property is projective: If all surjections of
114114
`R`-modules `(P →₀ R) →ₗ[R] P` have `R`-linear left inverse maps, then `P` is
@@ -117,8 +117,8 @@ theorem Projective.of_lifting_property'' {R : Type u} [Semiring R] {P : Type v}
117117
[Module R P] (huniv : ∀ (f : (P →₀ R) →ₗ[R] P), Function.Surjective f →
118118
∃ h : P →ₗ[R] (P →₀ R), f.comp h = .id) :
119119
Projective R P :=
120-
projective_def'.2 <| huniv (Finsupp.total R (id : P → P))
121-
(total_surjective _ Function.surjective_id)
120+
projective_def'.2 <| huniv (Finsupp.linearCombination R (id : P → P))
121+
(linearCombination_surjective _ Function.surjective_id)
122122

123123
variable {Q : Type*} [AddCommMonoid Q] [Module R Q]
124124

@@ -152,9 +152,9 @@ theorem Projective.of_basis {ι : Type*} (b : Basis ι R P) : Projective R P :=
152152
-- get it from `ι → (P →₀ R)` coming from `b`.
153153
use b.constr ℕ fun i => Finsupp.single (b i) (1 : R)
154154
intro m
155-
simp only [b.constr_apply, mul_one, id, Finsupp.smul_single', Finsupp.total_single,
155+
simp only [b.constr_apply, mul_one, id, Finsupp.smul_single', Finsupp.linearCombination_single,
156156
map_finsupp_sum]
157-
exact b.total_repr m
157+
exact b.linearCombination_repr m
158158

159159
instance (priority := 100) Projective.of_free [Module.Free R P] : Module.Projective R P :=
160160
.of_basis <| Module.Free.chooseBasis R P
@@ -164,7 +164,7 @@ variable [IsScalarTower R₀ R M] [AddCommGroup N] [Module R₀ N]
164164

165165
theorem Projective.of_split [Module.Projective R M]
166166
(i : P →ₗ[R] M) (s : M →ₗ[R] P) (H : s.comp i = LinearMap.id) : Module.Projective R P := by
167-
obtain ⟨g, hg⟩ := projective_lifting_property (Finsupp.total R id) s
167+
obtain ⟨g, hg⟩ := projective_lifting_property (Finsupp.linearCombination R id) s
168168
(fun x ↦ ⟨Finsupp.single x 1, by simp⟩)
169169
refine ⟨g.comp i, fun x ↦ ?_⟩
170170
rw [LinearMap.comp_apply, ← LinearMap.comp_apply, hg,
@@ -178,7 +178,7 @@ theorem Projective.of_equiv [Module.Projective R M]
178178
theorem Projective.iff_split : Module.Projective R P ↔
179179
∃ (M : Type max u v) (_ : AddCommGroup M) (_ : Module R M) (_ : Module.Free R M)
180180
(i : P →ₗ[R] M) (s : M →ₗ[R] P), s.comp i = LinearMap.id :=
181-
fun ⟨i, hi⟩ ↦ ⟨P →₀ R, _, _, inferInstance, i, Finsupp.total R id, LinearMap.ext hi⟩,
181+
fun ⟨i, hi⟩ ↦ ⟨P →₀ R, _, _, inferInstance, i, Finsupp.linearCombination R id, LinearMap.ext hi⟩,
182182
fun ⟨_, _, _, _, i, s, H⟩ ↦ Projective.of_split i s H⟩
183183

184184
/-- A quotient of a projective module is projective iff it is a direct summand. -/
@@ -197,11 +197,11 @@ instance Projective.tensorProduct [hM : Module.Projective R M] [hN : Module.Proj
197197
fapply Projective.of_split (R := R) (M := ((M →₀ R) ⊗[R₀] (N →₀ R₀)))
198198
· exact (AlgebraTensorModule.map sM (LinearMap.id (R := R₀) (M := N →₀ R₀)))
199199
· exact (AlgebraTensorModule.map
200-
(Finsupp.total R id) (LinearMap.id (R := R₀) (M := N →₀ R₀)))
200+
(Finsupp.linearCombination R id) (LinearMap.id (R := R₀) (M := N →₀ R₀)))
201201
· ext; simp [hsM _]
202202
fapply Projective.of_split (R := R) (M := (M ⊗[R₀] (N →₀ R₀)))
203203
· exact (AlgebraTensorModule.map (LinearMap.id (R := R) (M := M)) sN)
204-
· exact (AlgebraTensorModule.map (LinearMap.id (R := R) (M := M)) (Finsupp.total R₀ id))
204+
· exact (AlgebraTensorModule.map (LinearMap.id (R := R) (M := M)) (linearCombination R₀ id))
205205
· ext; simp [hsN _]
206206

207207
end Ring

Mathlib/AlgebraicGeometry/StructureSheaf.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -799,9 +799,9 @@ theorem toBasicOpen_surjective (f : R) : Function.Surjective (toBasicOpen R f) :
799799
apply PrimeSpectrum.vanishingIdeal_anti_mono ht_cover
800800
exact PrimeSpectrum.subset_vanishingIdeal_zeroLocus {f} (Set.mem_singleton f)
801801
replace hn := Ideal.mul_mem_right f _ hn
802-
erw [← pow_succ, Finsupp.mem_span_image_iff_total] at hn
802+
erw [← pow_succ, Finsupp.mem_span_image_iff_linearCombination] at hn
803803
rcases hn with ⟨b, b_supp, hb⟩
804-
rw [Finsupp.total_apply_of_mem_supported R b_supp] at hb
804+
rw [Finsupp.linearCombination_apply_of_mem_supported R b_supp] at hb
805805
dsimp at hb
806806
-- Finally, we have all the ingredients.
807807
-- We claim that our preimage is given by `(∑ (i : ι) ∈ t, b i * a i) / f ^ (n+1)`

0 commit comments

Comments
 (0)