Paper XII · Lean source
CompletedBaseChangeTransport.lean
Inherited / related evidence Coverage and evidence
The edition relies on earlier or related formal evidence. That evidence is not a fresh full-edition replay.
This viewer reads the retained source; it does not run Lean or assign new claim mappings.
Local imports (1)
PaperXII/CompletedBaseChangeTransport.lean113 lines
Original source path
core/publication/source/lean_guide/formal_release/lean/PaperXII/CompletedBaseChangeTransport.leanSkip declarations and read code
1 import PaperXII.CompletedGlobalBaseChange
2 import Mathlib.RingTheory.TensorProduct.Maps
3
4 /-! Transport to a separately constructed local-condition ring, using an actual
5 proved quotient equivalence. The final object is the completion of B ⊗[A] C. -/
6 noncomputable section
7 open UniformSpace
8 open scoped TensorProduct
9 set_option autoImplicit false
10 namespace PaperXII.CompletedBaseChange
11
12 variable {A B C : Type*} [CommRing A] [CommRing B] [CommRing C]
13 [Algebra A B] [Algebra A C]
14 variable (mA : Ideal A) (mB : Ideal B) (J : Ideal A) (e : (A ⧸ J) ≃ₐ[A] C)
15
16 def transportedIdeal : Ideal (B ⊗[A] C) :=
17 mB.map (algebraMap B (B ⊗[A] C)) ⊔
18 ((mA.map (Ideal.Quotient.mk J)).map e.toRingHom).map
19 (Algebra.TensorProduct.includeRight : C →ₐ[A] B ⊗[A] C).toRingHom
20
21 abbrev Transported := AdicModel.Completed (B ⊗[A] C) (transportedIdeal mA mB J e)
22
23 def transportedGlobalMap : B →+* Transported mA mB J e :=
24 (AdicModel.embed _ _).comp (algebraMap B (B ⊗[A] C))
25
26 def rawTransport : Raw (B := B) J ≃ₐ[B] B ⊗[A] C :=
27 Algebra.TensorProduct.congr (AlgEquiv.refl : B ≃ₐ[B] B) e
28
29 @[simp] theorem rawTransport_left (b : B) :
30 rawTransport (B := B) J e (algebraMap B (Raw (B := B) J) b) =
31 algebraMap B (B ⊗[A] C) b := AlgEquiv.commutes _ b
32
33 @[simp] theorem rawTransport_right (a : A ⧸ J) :
34 rawTransport (B := B) J e
35 ((Algebra.TensorProduct.includeRight : A ⧸ J →ₐ[A] Raw (B := B) J) a) =
36 (Algebra.TensorProduct.includeRight : C →ₐ[A] B ⊗[A] C) (e a) := by
37 simp [rawTransport, Algebra.TensorProduct.includeRight_apply]
38
39 theorem rawTransport_ideal :
40 (tensorIdeal mA mB J).map (rawTransport (B := B) J e).toRingHom =
41 transportedIdeal mA mB J e := by
42 have hl : (rawTransport (B := B) J e).toRingHom.comp (algebraMap B (Raw (B := B) J)) =
43 algebraMap B (B ⊗[A] C) := by ext b; exact rawTransport_left J e b
44 have hr : (rawTransport (B := B) J e).toRingHom.comp
45 (Algebra.TensorProduct.includeRight : A ⧸ J →ₐ[A] Raw (B := B) J).toRingHom =
46 (Algebra.TensorProduct.includeRight : C →ₐ[A] B ⊗[A] C).toRingHom.comp e.toRingHom := by
47 ext a; exact rawTransport_right J e a
48 simp only [tensorIdeal, transportedIdeal, Ideal.map_sup, Ideal.map_map]
49 rw [hl, ← RingHom.comp_assoc, hr]
50 rfl
51
52 /-- The actual complete base changes are equivalent under the literal quotient identification. -/
53 def completedTransport : Completed mA mB J ≃+* Transported mA mB J e :=
54 AdicModel.completedEquiv _ _ (rawTransport (B := B) J e).toRingEquiv
55 (rawTransport_ideal mA mB J e)
56
57 theorem completedTransport_continuous : Continuous (completedTransport mA mB J e) :=
58 AdicModel.completedEquiv_continuous _ _ _ (rawTransport_ideal mA mB J e)
59
60 theorem completedTransport_symm_continuous : Continuous (completedTransport mA mB J e).symm :=
61 AdicModel.completedEquiv_symm_continuous _ _ _ (rawTransport_ideal mA mB J e)
62
63 @[simp] theorem completedTransport_globalMap (b : B) :
64 completedTransport mA mB J e (globalMap mA mB J b) = transportedGlobalMap mA mB J e b := by
65 change AdicModel.completedEquiv _ _ _ (rawTransport_ideal mA mB J e)
66 (AdicModel.embed _ _ (algebraMap B (Raw (B := B) J) b)) = _
67 rw [AdicModel.completedEquiv_embed]
68 exact congrArg (AdicModel.embed _ _) (rawTransport_left J e b)
69
70 variable {P : Type*} [CommRing P] [UniformSpace P] [IsUniformAddGroup P]
71 [IsTopologicalRing P] [CompleteSpace P] [T2Space P]
72
73 /-- Transported factorization, including continuity and uniqueness, for the named local ring. -/
74 theorem transported_exists_unique_factor_iff (h : mA.map (algebraMap A B) ≤ mB)
75 (p : B →+* P) (hp : Continuous (p.comp (AdicModel.rawEquiv B mB).toRingHom)) :
76 (∃! g : Transported mA mB J e →+* P,
77 Continuous g ∧ g.comp (transportedGlobalMap mA mB J e) = p) ↔
78 J ≤ RingHom.ker (p.comp (algebraMap A B)) := by
79 constructor
80 · rintro ⟨g, ⟨_, hp'⟩, _⟩
81 change J ≤ (RingHom.ker p).comap (algebraMap A B)
82 rw [← Ideal.map_le_iff_le_comap]
83 intro b hb
84 change p b = 0
85 rw [← hp']
86 change g (transportedGlobalMap mA mB J e b) = 0
87 rw [← completedTransport_globalMap, show globalMap mA mB J b = 0 from
88 globalMap_kills mA mB J hb, map_zero, map_zero]
89 · intro hJ
90 obtain ⟨g, ⟨hg, hgp⟩, hgu⟩ :=
91 (exists_unique_factor_iff_restriction mA mB J h p hp).mpr hJ
92 refine ⟨g.comp (completedTransport mA mB J e).symm.toRingHom, ⟨?_, ?_⟩, ?_⟩
93 · exact hg.comp (completedTransport_symm_continuous mA mB J e)
94 · ext b
95 change g ((completedTransport mA mB J e).symm (transportedGlobalMap mA mB J e b)) = p b
96 rw [← completedTransport_globalMap, RingEquiv.symm_apply_apply]
97 exact DFunLike.congr_fun hgp b
98 · intro g' hg'
99 have heq : g'.comp (completedTransport mA mB J e).toRingHom = g := by
100 apply hgu
101 refine ⟨hg'.1.comp (completedTransport_continuous mA mB J e), ?_⟩
102 ext b
103 change g' (completedTransport mA mB J e (globalMap mA mB J b)) = p b
104 rw [completedTransport_globalMap]
105 exact DFunLike.congr_fun hg'.2 b
106 ext x
107 obtain ⟨y, rfl⟩ := (completedTransport mA mB J e).surjective x
108 change g' (completedTransport mA mB J e y) = g ((completedTransport mA mB J e).symm
109 (completedTransport mA mB J e y))
110 rw [RingEquiv.symm_apply_apply]
111 exact DFunLike.congr_fun heq y
112
113 end PaperXII.CompletedBaseChange
Original file and source record
This copy matches the recorded source file. Its publication here does not change the work’s review status.
SHA-256: 332e73f093c5fefc16ad077d4394f8bc846fe31164a5bc35a223d8ff27f483c7
Back to Paper XII: Patching Support, Hecke Packets, and Conditional Automorphic Completion