Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 09506e6

Browse files
feat(ring_theory/finiteness): add finiteness of restrict_scalars (#9363)
We add `module.finitte.of_restrict_scalars_finite` and related lemmas: if `A` is an `R`-algebra and `M` is an `A`-module that is finite as `R`-module, then it is finite as `A`-module (similarly for `finite_type`).
1 parent 3b48f7a commit 09506e6

File tree

1 file changed

+51
-1
lines changed

1 file changed

+51
-1
lines changed

src/ring_theory/finiteness.lean

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,20 @@ variables (R)
9090
instance self : finite R R :=
9191
⟨⟨{1}, by simpa only [finset.coe_singleton] using ideal.span_singleton_one⟩⟩
9292

93-
variables {R}
93+
variable (M)
94+
95+
lemma of_restrict_scalars_finite [module A M] [is_scalar_tower R A M] [hM : finite R M] :
96+
finite A M :=
97+
begin
98+
rw [finite_def, fg_def] at hM ⊢,
99+
obtain ⟨S, hSfin, hSgen⟩ := hM,
100+
refine ⟨S, hSfin, eq_top_iff.2 _⟩,
101+
have := submodule.span_le_restrict_scalars R A M S,
102+
rw hSgen at this,
103+
exact this
104+
end
105+
106+
variables {R M}
94107

95108
instance prod [hM : finite R M] [hN : finite R N] : finite R (M × N) :=
96109
begin
@@ -142,6 +155,15 @@ protected lemma mv_polynomial (ι : Type*) [fintype ι] : finite_type R (mv_poly
142155
end⟩⟩
143156
end
144157

158+
lemma of_restrict_scalars_finite_type [algebra A B] [is_scalar_tower R A B] [hB : finite_type R B] :
159+
finite_type A B :=
160+
begin
161+
obtain ⟨S, hS⟩ := hB.out,
162+
refine ⟨⟨S, eq_top_iff.2 (λ b, _)⟩⟩,
163+
convert (algebra.adjoin_le algebra.subset_adjoin :
164+
adjoin R (S : set B) ≤ subalgebra.restrict_scalars R (adjoin A S)) (eq_top_iff.1 hS b)
165+
end
166+
145167
variables {R A B}
146168

147169
lemma of_surjective (hRA : finite_type R A) (f : A →ₐ[R] B) (hf : surjective f) :
@@ -414,6 +436,16 @@ hf hg
414436
lemma finite_type {f : A →+* B} (hf : f.finite) : finite_type f :=
415437
@module.finite.finite_type _ _ _ _ f.to_algebra hf
416438

439+
lemma of_comp_finite {f : A →+* B} {g : B →+* C} (h : (g.comp f).finite) : g.finite :=
440+
begin
441+
letI := f.to_algebra,
442+
letI := g.to_algebra,
443+
letI := (g.comp f).to_algebra,
444+
letI : is_scalar_tower A B C := restrict_scalars.is_scalar_tower A B C,
445+
letI : module.finite A C := h,
446+
exact module.finite.of_restrict_scalars_finite A B C
447+
end
448+
417449
end finite
418450

419451
namespace finite_type
@@ -446,6 +478,17 @@ hf hg
446478
lemma of_finite_presentation {f : A →+* B} (hf : f.finite_presentation) : f.finite_type :=
447479
@algebra.finite_type.of_finite_presentation A B _ _ f.to_algebra hf
448480

481+
lemma of_comp_finite_type {f : A →+* B} {g : B →+* C} (h : (g.comp f).finite_type) :
482+
g.finite_type :=
483+
begin
484+
letI := f.to_algebra,
485+
letI := g.to_algebra,
486+
letI := (g.comp f).to_algebra,
487+
letI : is_scalar_tower A B C := restrict_scalars.is_scalar_tower A B C,
488+
letI : algebra.finite_type A C := h,
489+
exact algebra.finite_type.of_restrict_scalars_finite_type A B C
490+
end
491+
449492
end finite_type
450493

451494
namespace finite_presentation
@@ -515,6 +558,9 @@ ring_hom.finite.of_surjective f hf
515558
lemma finite_type {f : A →ₐ[R] B} (hf : f.finite) : finite_type f :=
516559
ring_hom.finite.finite_type hf
517560

561+
lemma of_comp_finite {f : A →ₐ[R] B} {g : B →ₐ[R] C} (h : (g.comp f).finite) : g.finite :=
562+
ring_hom.finite.of_comp_finite h
563+
518564
end finite
519565

520566
namespace finite_type
@@ -539,6 +585,10 @@ ring_hom.finite_type.of_surjective f hf
539585
lemma of_finite_presentation {f : A →ₐ[R] B} (hf : f.finite_presentation) : f.finite_type :=
540586
ring_hom.finite_type.of_finite_presentation hf
541587

588+
lemma of_comp_finite_type {f : A →ₐ[R] B} {g : B →ₐ[R] C} (h : (g.comp f).finite_type) :
589+
g.finite_type :=
590+
ring_hom.finite_type.of_comp_finite_type h
591+
542592
end finite_type
543593

544594
namespace finite_presentation

0 commit comments

Comments
 (0)