@@ -90,7 +90,20 @@ variables (R)
90
90
instance self : finite R R :=
91
91
⟨⟨{1 }, by simpa only [finset.coe_singleton] using ideal.span_singleton_one⟩⟩
92
92
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}
94
107
95
108
instance prod [hM : finite R M] [hN : finite R N] : finite R (M × N) :=
96
109
⟨begin
@@ -142,6 +155,15 @@ protected lemma mv_polynomial (ι : Type*) [fintype ι] : finite_type R (mv_poly
142
155
end ⟩⟩
143
156
end
144
157
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
+
145
167
variables {R A B}
146
168
147
169
lemma of_surjective (hRA : finite_type R A) (f : A →ₐ[R] B) (hf : surjective f) :
@@ -414,6 +436,16 @@ hf hg
414
436
lemma finite_type {f : A →+* B} (hf : f.finite) : finite_type f :=
415
437
@module.finite.finite_type _ _ _ _ f.to_algebra hf
416
438
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
+
417
449
end finite
418
450
419
451
namespace finite_type
@@ -446,6 +478,17 @@ hf hg
446
478
lemma of_finite_presentation {f : A →+* B} (hf : f.finite_presentation) : f.finite_type :=
447
479
@algebra.finite_type.of_finite_presentation A B _ _ f.to_algebra hf
448
480
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
+
449
492
end finite_type
450
493
451
494
namespace finite_presentation
@@ -515,6 +558,9 @@ ring_hom.finite.of_surjective f hf
515
558
lemma finite_type {f : A →ₐ[R] B} (hf : f.finite) : finite_type f :=
516
559
ring_hom.finite.finite_type hf
517
560
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
+
518
564
end finite
519
565
520
566
namespace finite_type
@@ -539,6 +585,10 @@ ring_hom.finite_type.of_surjective f hf
539
585
lemma of_finite_presentation {f : A →ₐ[R] B} (hf : f.finite_presentation) : f.finite_type :=
540
586
ring_hom.finite_type.of_finite_presentation hf
541
587
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
+
542
592
end finite_type
543
593
544
594
namespace finite_presentation
0 commit comments