@@ -50,7 +50,7 @@ class IsModuleTopology [τA : TopologicalSpace A] : Prop where
50
50
51
51
-- because default binders for isModuleTopology' are wrong and currently
52
52
-- there is no way to change this. There's a Lean 4 issue for this IIRC **TODO** where?
53
- lemma isModuleTopology [τA : TopologicalSpace A] [IsModuleTopology R A] :
53
+ theorem isModuleTopology [τA : TopologicalSpace A] [IsModuleTopology R A] :
54
54
τA = moduleTopology R A :=
55
55
IsModuleTopology.isModuleTopology' (R := R) (A := A)
56
56
@@ -88,14 +88,14 @@ variable {B : Type*} [AddCommMonoid B] [Module R B] [aB : TopologicalSpace B] [I
88
88
89
89
/-- Every `A`-linear map between two `A`-modules with the canonical topology is continuous. -/
90
90
@[continuity, fun_prop]
91
- lemma continuous_of_linearMap (f : A →ₗ[R] B) : Continuous f := by
91
+ theorem continuous_of_linearMap (f : A →ₗ[R] B) : Continuous f := by
92
92
rw [isModuleTopology R A, isModuleTopology R B, continuous_iff_le_induced]
93
93
apply iSup_le <| fun n ↦ iSup_le <| fun φ ↦ ?_
94
94
rw [← coinduced_le_iff_le_induced, coinduced_compose]
95
95
exact le_iSup_of_le n <| le_iSup_of_le (f.comp φ) le_rfl
96
96
97
97
-- should this be in the API?
98
- lemma continuous_of_linearMap' {A : Type *} [AddCommMonoid A] [Module R A]
98
+ theorem continuous_of_linearMap' {A : Type *} [AddCommMonoid A] [Module R A]
99
99
{B : Type *} [AddCommMonoid B] [Module R B] (f : A →ₗ[R] B) :
100
100
@Continuous _ _ (moduleTopology R A) (moduleTopology R B) f := by
101
101
letI : TopologicalSpace A := moduleTopology R A
@@ -133,7 +133,7 @@ end linear_map
133
133
134
134
section continuous_neg
135
135
136
- lemma continuous_neg
136
+ theorem continuous_neg
137
137
(R : Type *) [TopologicalSpace R] [Ring R]
138
138
(A : Type *) [AddCommGroup A] [Module R A] [TopologicalSpace A] [IsModuleTopology R A] :
139
139
Continuous (-· : A → A) :=
@@ -146,7 +146,7 @@ section surj
146
146
variable {R : Type *} [τR : TopologicalSpace R] [Semiring R] [TopologicalSemiring R]
147
147
variable {A : Type *} [AddCommMonoid A] [Module R A] [aA : TopologicalSpace A] [IsModuleTopology R A]
148
148
149
- lemma coinduced_of_surjectivePiFin {n : ℕ} {φ : ((Fin n) → R) →ₗ[R] A} (hφ : Function.Surjective φ) :
149
+ theorem coinduced_of_surjectivePiFin {n : ℕ} {φ : ((Fin n) → R) →ₗ[R] A} (hφ : Function.Surjective φ) :
150
150
TopologicalSpace.coinduced φ Pi.topologicalSpace = moduleTopology R A := by
151
151
apply le_antisymm
152
152
· rw [← continuous_iff_coinduced_le, ← isModuleTopology R A]
@@ -161,7 +161,7 @@ lemma coinduced_of_surjectivePiFin {n : ℕ} {φ : ((Fin n) → R) →ₗ[R] A}
161
161
exact continuous_of_linearMap α
162
162
163
163
/-- Any surjection between finite R-modules is coinducing for the R-module topology. -/
164
- lemma coinduced_of_surjective {B : Type *} [AddCommMonoid B] [aB : TopologicalSpace B] [Module R B]
164
+ theorem coinduced_of_surjective {B : Type *} [AddCommMonoid B] [aB : TopologicalSpace B] [Module R B]
165
165
[IsModuleTopology R B] [Module.Finite R A] {φ : A →ₗ[R] B} (hφ : Function.Surjective φ) :
166
166
TopologicalSpace.coinduced φ (moduleTopology R A) = moduleTopology R B := by
167
167
obtain ⟨n, f, hf⟩ := Module.Finite.exists_fin' R A
@@ -173,7 +173,7 @@ lemma coinduced_of_surjective {B : Type*} [AddCommMonoid B] [aB : TopologicalSpa
173
173
174
174
-- do I need this? Yes, I need (fin n) × fin m -> R
175
175
-- **^TODO** why didn't have/let linter warn me
176
- lemma coinduced_of_surjectivePiFinite {ι : Type *} [Finite ι] {φ : (ι → R) →ₗ[R] A}
176
+ theorem coinduced_of_surjectivePiFinite {ι : Type *} [Finite ι] {φ : (ι → R) →ₗ[R] A}
177
177
(hφ : Function.Surjective φ) :
178
178
TopologicalSpace.coinduced φ Pi.topologicalSpace = moduleTopology R A := by
179
179
rw [(instPiFinite R ι).isModuleTopology']
@@ -188,7 +188,7 @@ variable {A : Type*} [AddCommGroup A] [Module R A] [aA : TopologicalSpace A] [Is
188
188
189
189
variable (R A) in
190
190
@[continuity, fun_prop]
191
- lemma continuous_add [Module.Finite R A] : Continuous (fun ab ↦ ab.1 + ab.2 : A × A → A) := by
191
+ theorem continuous_add [Module.Finite R A] : Continuous (fun ab ↦ ab.1 + ab.2 : A × A → A) := by
192
192
rw [continuous_iff_coinduced_le, isModuleTopology R A]
193
193
obtain ⟨n, f, hf⟩ := Module.Finite.exists_fin' R A
194
194
rw [← coinduced_of_surjectivePiFin hf]
@@ -213,7 +213,7 @@ lemma continuous_add [Module.Finite R A] : Continuous (fun ab ↦ ab.1 + ab.2 :
213
213
214
214
variable (R A) in
215
215
@[continuity, fun_prop]
216
- lemma continuous_sum_finset (ι : Type *) [DecidableEq ι] (s : Finset ι) [Module.Finite R A] :
216
+ theorem continuous_sum_finset (ι : Type *) [DecidableEq ι] (s : Finset ι) [Module.Finite R A] :
217
217
Continuous (fun as ↦ ∑ i ∈ s, as i : (∀ (_ : ι), A) → A) := by
218
218
induction s using Finset.induction
219
219
· simp only [Finset.sum_empty]
@@ -227,7 +227,7 @@ lemma continuous_sum_finset (ι : Type*) [DecidableEq ι] (s : Finset ι) [Modul
227
227
attribute [local instance] Fintype.ofFinite
228
228
variable (R A) in
229
229
@[continuity, fun_prop]
230
- lemma continuous_sum_finite (ι : Type *) [Finite ι] [Module.Finite R A] :
230
+ theorem continuous_sum_finite (ι : Type *) [Finite ι] [Module.Finite R A] :
231
231
Continuous (fun as ↦ ∑ i, as i : (∀ (_ : ι), A) → A) := by
232
232
classical
233
233
exact continuous_sum_finset R A ι _
@@ -316,7 +316,7 @@ noncomputable def isom'' (R : Type*) [CommRing R] (m n : Type*) [Finite m] [Deci
316
316
317
317
variable (m n : Type *) [Finite m] [DecidableEq m] (a1 : m → R)
318
318
(b1 : n → R) (f : (m → R) →ₗ[R] A) (g : (n → R) →ₗ[R] B) in
319
- lemma key : ((TensorProduct.map f g ∘ₗ
319
+ theorem key : ((TensorProduct.map f g ∘ₗ
320
320
(isom'' R m n).symm.toLinearMap) fun mn ↦ a1 mn.1 * b1 mn.2 ) = f a1 ⊗ₜ[R] g b1 := by
321
321
sorry
322
322
@@ -336,7 +336,7 @@ lemma key : ((TensorProduct.map f g ∘ₗ
336
336
-- I don't know whether finiteness is needed on `B` here. Removing it here would enable
337
337
-- removal in `continuous_bilinear`.
338
338
@[continuity, fun_prop]
339
- lemma Module.continuous_tprod [Module.Finite R A] [Module.Finite R B] :
339
+ theorem Module.continuous_tprod [Module.Finite R A] [Module.Finite R B] :
340
340
Continuous (fun (ab : A × B) ↦ ab.1 ⊗ₜ ab.2 : A × B → A ⊗[R] B) := by
341
341
-- reduce to R^m x R^n -> R^m ⊗ R^n
342
342
-- then check explicitly
@@ -377,7 +377,7 @@ lemma Module.continuous_tprod [Module.Finite R A] [Module.Finite R B] :
377
377
rfl
378
378
379
379
-- did I really use finiteness of B?
380
- lemma Module.continuous_bilinear [Module.Finite R A] [Module.Finite R B]
380
+ theorem Module.continuous_bilinear [Module.Finite R A] [Module.Finite R B]
381
381
{C : Type *} [AddCommGroup C] [Module R C] [TopologicalSpace C] [IsModuleTopology R C]
382
382
(bil : A →ₗ[R] B →ₗ[R] C) : Continuous (fun ab ↦ bil ab.1 ab.2 : (A × B → C)) := by
383
383
letI : TopologicalSpace (A ⊗[R] B) := moduleTopology R _
@@ -390,7 +390,7 @@ variable (D : Type*) [Ring D] [Algebra R D] [Module.Finite R D]
390
390
variable [TopologicalSpace D] [IsModuleTopology R D]
391
391
392
392
@[continuity, fun_prop]
393
- lemma continuous_mul (D : Type *) [Ring D] [Algebra R D] [Module.Finite R D] [TopologicalSpace D]
393
+ theorem continuous_mul (D : Type *) [Ring D] [Algebra R D] [Module.Finite R D] [TopologicalSpace D]
394
394
[IsModuleTopology R D] : Continuous (fun ab ↦ ab.1 * ab.2 : D × D → D) := by
395
395
letI : TopologicalSpace (D ⊗[R] D) := moduleTopology R _
396
396
haveI : IsModuleTopology R (D ⊗[R] D) := { isModuleTopology' := rfl }
@@ -403,7 +403,7 @@ def Module.topologicalRing : TopologicalRing D where
403
403
404
404
end commutative
405
405
406
- lemma continuousSMul (R : Type *) [CommRing R] [TopologicalSpace R] [TopologicalRing R]
406
+ theorem continuousSMul (R : Type *) [CommRing R] [TopologicalSpace R] [TopologicalRing R]
407
407
(A : Type *) [AddCommGroup A] [Module R A] [Module.Finite R A] [TopologicalSpace A]
408
408
[IsModuleTopology R A] :
409
409
ContinuousSMul R A := by
@@ -420,7 +420,7 @@ I can only prove that `SMul : R × A → A` is continuous for the module topolog
420
420
commutative (because my proof uses tensor products) and if `A` is finite (because
421
421
I reduce to a basis check ). Is it true in general? I'm assuming not.
422
422
423
- lemma continuousSMul (R : Type*) [Ring R] [TopologicalSpace R] [TopologicalRing R]
423
+ theorem continuousSMul (R : Type*) [Ring R] [TopologicalSpace R] [TopologicalRing R]
424
424
(A : Type*) [AddCommGroup A] [Module R A] : @ContinuousSMul R A _ _ (moduleTopology R A) := by
425
425
refine @ContinuousSMul.mk ?_ ?_ ?_ ?_ ?_ ?_
426
426
haveI : IsModuleTopology R R := inferInstance
0 commit comments