@@ -246,23 +246,54 @@ lemma v_adicCompletionComapSemialgHom
246
246
subst hvw
247
247
rw [← valuation_comap A K L B w a]
248
248
249
+ def noZeroSMulDivisors : NoZeroSMulDivisors A B := by
250
+ constructor
251
+ intro r x h
252
+ suffices (algebraMap A K r) • (algebraMap B L x) = 0 by
253
+ rw [smul_eq_zero] at this
254
+ simpa using this
255
+ have ht : Algebra.linearMap B L (r • x) = r • algebraMap B L x := by
256
+ simp [LinearMap.map_smul_of_tower]
257
+ rw [IsScalarTower.algebraMap_smul, ← ht, h, map_zero]
258
+
259
+ def finite (v : HeightOneSpectrum A) : Finite {w : HeightOneSpectrum B // v = comap A w} := by
260
+ have := noZeroSMulDivisors A K L B
261
+ rw [← Set.coe_setOf]
262
+ rw [@Set.finite_coe_iff]
263
+ have := primesOver_finite v.asIdeal B
264
+ refine Set.Finite.of_finite_image (f := HeightOneSpectrum.asIdeal) ?_ ?_
265
+ · refine Set.Finite.subset this ?_
266
+ simp only [Set.subset_def, Set.mem_image, Set.mem_setOf_eq, forall_exists_index, and_imp,
267
+ forall_apply_eq_imp_iff₂]
268
+ rintro w rfl
269
+ simp only [Ideal.primesOver, Set.mem_setOf_eq, isPrime, true_and]
270
+ constructor
271
+ simp [Ideal.under_def, comap]
272
+ · intro x hx y hy hxy
273
+ rwa [← @HeightOneSpectrum.ext_iff] at hxy
274
+
249
275
/-- The canonical map `K_v → ∏_{w|v} L_w` extending K → L. -/
250
276
noncomputable def adicCompletionComapSemialgHom' (v : HeightOneSpectrum A) :
251
277
(HeightOneSpectrum.adicCompletion K v) →ₛₐ[algebraMap K L]
252
278
(∀ w : {w : HeightOneSpectrum B // v = comap A w}, HeightOneSpectrum.adicCompletion L w.1 ) :=
253
279
Pi.semialgHom _ _ fun i ↦ adicCompletionComapSemialgHom A K L B v i.1 i.2
254
280
255
- lemma prodAdicCompletionComap_isModuleTopology
256
- (v : HeightOneSpectrum A) (w : HeightOneSpectrum B) (hvw : v = comap A w) :
281
+ lemma prodAdicCompletionComap_isModuleTopology (v : HeightOneSpectrum A) :
257
282
-- temporarily make ∏_w L_w a K_v-algebra
258
- let inst_alg : Algebra (HeightOneSpectrum.adicCompletion K v)
283
+ letI inst_alg : Algebra (HeightOneSpectrum.adicCompletion K v)
259
284
(∀ w : {w : HeightOneSpectrum B // v = comap A w}, HeightOneSpectrum.adicCompletion L w.1 ) :=
260
- RingHom.toAlgebra <|
261
- Pi.ringHom (fun w : {w : HeightOneSpectrum B // v = comap A w} ↦ adicCompletionComapSemialgHom A K L B v w.1 w.2 )
285
+ RingHom.toAlgebra <| adicCompletionComapSemialgHom' A K L B v
262
286
-- the claim that L_w has the module topology.
263
287
IsModuleTopology (HeightOneSpectrum.adicCompletion K v)
264
288
(∀ w : {w : HeightOneSpectrum B // v = comap A w}, HeightOneSpectrum.adicCompletion L w.1 ) := by
265
- sorry -- FLT#327
289
+ let _ (w : { w : HeightOneSpectrum B // v = comap A w }) :
290
+ Module (adicCompletion K v) (adicCompletion L w.1 ) :=
291
+ @Algebra.toModule _ _ _ _ <| RingHom.toAlgebra <| adicCompletionComapSemialgHom A K L B v w.1 w.2
292
+ let _ (w : { w : HeightOneSpectrum B // v = comap A w }) :
293
+ IsModuleTopology (adicCompletion K v) (adicCompletion L w.1 ) :=
294
+ adicCompletionComap_isModuleTopology A K L B v w.1 w.2
295
+ let _ := finite A K L B v
296
+ infer_instance
266
297
267
298
open scoped TensorProduct -- ⊗ notation for tensor product
268
299
0 commit comments