topology.continuous_function.ideals ⟷ Mathlib.Topology.ContinuousFunction.Ideals

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -6,7 +6,7 @@ Authors: Jireh Loreaux
 import Topology.Algebra.Algebra
 import Topology.ContinuousFunction.Compact
 import Topology.UrysohnsLemma
-import Data.IsROrC.Basic
+import Analysis.RCLike.Basic
 import Analysis.NormedSpace.Units
 import Topology.Algebra.Module.CharacterSpace
 
@@ -206,11 +206,11 @@ theorem ideal_gc : GaloisConnection (setOfIdeal : Ideal C(X, R) β†’ Set X) (idea
 
 end TopologicalRing
 
-section IsROrC
+section RCLike
 
-open IsROrC
+open RCLike
 
-variable {X π•œ : Type _} [IsROrC π•œ] [TopologicalSpace X]
+variable {X π•œ : Type _} [RCLike π•œ] [TopologicalSpace X]
 
 #print ContinuousMap.exists_mul_le_one_eqOn_ge /-
 /-- An auxiliary lemma used in the proof of `ideal_of_set_of_ideal_eq_closure` which may be useful
@@ -333,7 +333,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
       ext
       simp only [comp_apply, coe_mk, algebraMapCLM_coe, map_pow, coe_mul, coe_star, Pi.mul_apply,
         Pi.star_apply, star_def, ContinuousMap.coe_coe]
-      simpa only [norm_sq_eq_def', IsROrC.conj_mul, of_real_pow]
+      simpa only [norm_sq_eq_def', RCLike.conj_mul, of_real_pow]
   /- Get the function `g'` which is guaranteed to exist above. By the extreme value theorem and
     compactness of `t`, there is some `0 < c` such that `c ≀ g' x` for all `x ∈ t`. Then by
     `main_lemma_aux` there is some `g` for which `g * g'` is the desired function. -/
@@ -382,7 +382,7 @@ theorem setOfIdeal_ofSet_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ s
   exact
     ⟨⟨fun x => g x, continuous_of_real.comp (map_continuous g)⟩, by
       simpa only [coe_mk, of_real_eq_zero] using fun x hx => hgs (subset_closure hx), by
-      simpa only [coe_mk, hgx (Set.mem_singleton x), Pi.one_apply, IsROrC.ofReal_one] using
+      simpa only [coe_mk, hgx (Set.mem_singleton x), Pi.one_apply, RCLike.ofReal_one] using
         one_ne_zero⟩
 #align continuous_map.set_of_ideal_of_set_eq_interior ContinuousMap.setOfIdeal_ofSet_eq_interior
 -/
@@ -463,7 +463,7 @@ theorem ideal_isMaximal_iff (I : Ideal C(X, π•œ)) [hI : IsClosed (I : Set C(X,
 #align continuous_map.ideal_is_maximal_iff ContinuousMap.ideal_isMaximal_iff
 -/
 
-end IsROrC
+end RCLike
 
 end ContinuousMap
 
@@ -505,7 +505,7 @@ theorem continuousMapEval_apply_apply (x : X) (f : C(X, π•œ)) : continuousMapEv
 
 end ContinuousMapEval
 
-variable [CompactSpace X] [T2Space X] [IsROrC π•œ]
+variable [CompactSpace X] [T2Space X] [RCLike π•œ]
 
 #print WeakDual.CharacterSpace.continuousMapEval_bijective /-
 theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) :=
@@ -517,9 +517,9 @@ theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) :=
         (isClosed_singleton : _root_.is_closed {y}) (set.disjoint_singleton.mpr hxy) with
       ⟨f, fx, fy, -⟩
     rw [← Ne.def, DFunLike.ne_iff]
-    use(⟨coe, IsROrC.continuous_ofReal⟩ : C(ℝ, π•œ)).comp f
+    use(⟨coe, RCLike.continuous_ofReal⟩ : C(ℝ, π•œ)).comp f
     simpa only [continuous_map_eval_apply_apply, ContinuousMap.comp_apply, coe_mk, Ne.def,
-      IsROrC.ofReal_inj] using
+      RCLike.ofReal_inj] using
       ((fx (Set.mem_singleton x)).symm β–Έ (fy (Set.mem_singleton y)).symm β–Έ zero_ne_one : f x β‰  f y)
   Β· obtain ⟨x, hx⟩ := (ideal_is_maximal_iff (RingHom.ker Ο†)).mp inferInstance
     refine' ⟨x, ext_ker <| Ideal.ext fun f => _⟩
Diff
@@ -321,7 +321,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
         simpa only [zero_add] using add_lt_add_of_le_of_lt zero_le' (hgtβ‚‚ x hx)
     Β· intro x hx
       replace hx := htI.subset_compl_right hx
-      rw [compl_compl, mem_set_of_ideal] at hx 
+      rw [compl_compl, mem_set_of_ideal] at hx
       obtain ⟨g, hI, hgx⟩ := hx
       have := (map_continuous g).ContinuousAt.eventually_ne hgx
       refine'
@@ -340,7 +340,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
   obtain ⟨g', hI', hgt'⟩ := this
   obtain ⟨c, hc, hgc'⟩ : βˆƒ (c : _) (hc : 0 < c), βˆ€ y : X, y ∈ t β†’ c ≀ g' y :=
     t.eq_empty_or_nonempty.elim
-      (fun ht' => ⟨1, zero_lt_one, fun y hy => False.elim (by rwa [ht'] at hy )⟩) fun ht' =>
+      (fun ht' => ⟨1, zero_lt_one, fun y hy => False.elim (by rwa [ht'] at hy)⟩) fun ht' =>
       let ⟨x, hx, hx'⟩ := ht.is_compact.exists_forall_le ht' (map_continuous g').ContinuousOn
       ⟨g' x, hgt' x hx, hx'⟩
   obtain ⟨g, hg, hgc⟩ := exists_mul_le_one_eq_on_ge g' hc
@@ -371,7 +371,7 @@ theorem setOfIdeal_ofSet_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ s
         set.not_mem_compl_iff.mp (mt (@hf x) hfx))
       fun x hx => _
   -- If `x βˆ‰ closure sᢜ`, we must produce `f : C(X, π•œ)` which is zero on `sᢜ` and `f x β‰  0`.
-  rw [← compl_compl (interior s), ← closure_compl] at hx 
+  rw [← compl_compl (interior s), ← closure_compl] at hx
   simp_rw [mem_set_of_ideal, mem_ideal_of_set]
   haveI : NormalSpace X := T4Space.of_compactSpace_t2Space
   /- Apply Urysohn's lemma to get `g : C(X, ℝ)` which is zero on `sᢜ` and `g x β‰  0`, then compose
@@ -421,7 +421,7 @@ theorem idealOfSet_isMaximal_iff (s : Opens X) :
   by
   rw [Ideal.isMaximal_def]
   refine' (ideal_opens_gi X π•œ).isCoatom_iff_ge_of_le (fun I hI => _) s
-  rw [← Ideal.isMaximal_def] at hI 
+  rw [← Ideal.isMaximal_def] at hI
   skip
   exact ideal_of_set_of_ideal_is_closed inferInstance
 #align continuous_map.ideal_of_set_is_maximal_iff ContinuousMap.idealOfSet_isMaximal_iff
Diff
@@ -282,7 +282,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
           _ = β€–algebraMap ℝβ‰₯0 π•œ (1 - g x)β€–β‚Š := by
             simp only [Algebra.algebraMap_eq_smul_one, NNReal.smul_def, NNReal.coe_sub (hg x),
               sub_smul, Nonneg.coe_one, one_smul]
-          _ ≀ 1 := (nnnorm_algebraMap_nNReal π•œ (1 - g x)).trans_le tsub_le_self
+          _ ≀ 1 := (nnnorm_algebraMap_nnreal π•œ (1 - g x)).trans_le tsub_le_self
       calc
         β€–f x - f x * (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g xβ€–β‚Š =
             β€–f x * (1 - (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
Diff
@@ -260,34 +260,34 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
     Indeed, then `β€–f - f * ↑gβ€– ≀ β€–f * (1 - ↑g)β€– ≀ ⨆ β€–f * (1 - ↑g) xβ€–`. When `x βˆ‰ t`, `β€–f xβ€– < Ξ΅ / 2`
     and `β€–(1 - ↑g) xβ€– ≀ 1`, and when `x ∈ t`, `(1 - ↑g) x = 0`, and clearly `f * ↑g ∈ I`. -/
   suffices
-    βˆƒ g : C(X, ℝβ‰₯0), (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g ∈ I ∧ (βˆ€ x, g x ≀ 1) ∧ t.eq_on g 1
+    βˆƒ g : C(X, ℝβ‰₯0), (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g ∈ I ∧ (βˆ€ x, g x ≀ 1) ∧ t.eq_on g 1
     by
     obtain ⟨g, hgI, hg, hgt⟩ := this
-    refine' ⟨f * (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g, I.mul_mem_left f hgI, _⟩
+    refine' ⟨f * (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g, I.mul_mem_left f hgI, _⟩
     rw [nndist_eq_nnnorm]
     refine' (nnnorm_lt_iff _ hΞ΅).2 fun x => _
     simp only [coe_sub, coe_mul, Pi.sub_apply, Pi.mul_apply]
     by_cases hx : x ∈ t
     Β·
-      simpa only [hgt hx, comp_apply, Pi.one_apply, ContinuousMap.coe_coe, algebraMapClm_apply,
+      simpa only [hgt hx, comp_apply, Pi.one_apply, ContinuousMap.coe_coe, algebraMapCLM_apply,
         map_one, mul_one, sub_self, nnnorm_zero] using hΞ΅
     Β· refine' lt_of_le_of_lt _ (half_lt_self hΞ΅)
       have :=
         calc
-          β€–((1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) x : π•œ)β€–β‚Š =
+          β€–((1 - (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) x : π•œ)β€–β‚Š =
               β€–1 - algebraMap ℝβ‰₯0 π•œ (g x)β€–β‚Š :=
             by
             simp only [coe_sub, coe_one, coe_comp, ContinuousMap.coe_coe, Pi.sub_apply,
-              Pi.one_apply, Function.comp_apply, algebraMapClm_apply]
+              Pi.one_apply, Function.comp_apply, algebraMapCLM_apply]
           _ = β€–algebraMap ℝβ‰₯0 π•œ (1 - g x)β€–β‚Š := by
             simp only [Algebra.algebraMap_eq_smul_one, NNReal.smul_def, NNReal.coe_sub (hg x),
               sub_smul, Nonneg.coe_one, one_smul]
           _ ≀ 1 := (nnnorm_algebraMap_nNReal π•œ (1 - g x)).trans_le tsub_le_self
       calc
-        β€–f x - f x * (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g xβ€–β‚Š =
-            β€–f x * (1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
+        β€–f x - f x * (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g xβ€–β‚Š =
+            β€–f x * (1 - (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
           by simp only [mul_sub, coe_sub, coe_one, Pi.sub_apply, Pi.one_apply, mul_one]
-        _ ≀ Ξ΅ / 2 * β€–(1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
+        _ ≀ Ξ΅ / 2 * β€–(1 - (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
           ((nnnorm_mul_le _ _).trans
             (mul_le_mul_right' (not_le.mp <| show ¬Ρ / 2 ≀ β€–f xβ€–β‚Š from hx).le _))
         _ ≀ Ξ΅ / 2 := by simpa only [mul_one] using mul_le_mul_left' this _
@@ -297,12 +297,12 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
     `fβ‚“ x β‰  0` for some `fβ‚“ ∈ I` and so `Ξ» y, β€–(star fβ‚“ * fβ‚“) yβ€–β‚Š` is strictly posiive in a
     neighborhood of `y`. Moreover, `(β€–(star fβ‚“ * fβ‚“) yβ€–β‚Š : π•œ) = (star fβ‚“ * fβ‚“) y`, so composition of
     this map with the natural embedding is just `star fβ‚“ * fβ‚“ ∈ I`. -/
-  have : βˆƒ g' : C(X, ℝβ‰₯0), (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g' ∈ I ∧ βˆ€ x ∈ t, 0 < g' x :=
+  have : βˆƒ g' : C(X, ℝβ‰₯0), (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g' ∈ I ∧ βˆ€ x ∈ t, 0 < g' x :=
     by
     refine'
       @IsCompact.induction_on _ _ _ ht.is_compact
         (fun s =>
-          βˆƒ g' : C(X, ℝβ‰₯0), (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g' ∈ I ∧ βˆ€ x ∈ s, 0 < g' x)
+          βˆƒ g' : C(X, ℝβ‰₯0), (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g' ∈ I ∧ βˆ€ x ∈ s, 0 < g' x)
         _ _ _ _
     · refine' ⟨0, _, fun x hx => False.elim hx⟩
       convert I.zero_mem
@@ -331,7 +331,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
             pow_pos (norm_pos_iff.mpr hx.1) 2⟩⟩
       convert I.mul_mem_left (star g) hI
       ext
-      simp only [comp_apply, coe_mk, algebraMapClm_coe, map_pow, coe_mul, coe_star, Pi.mul_apply,
+      simp only [comp_apply, coe_mk, algebraMapCLM_coe, map_pow, coe_mul, coe_star, Pi.mul_apply,
         Pi.star_apply, star_def, ContinuousMap.coe_coe]
       simpa only [norm_sq_eq_def', IsROrC.conj_mul, of_real_pow]
   /- Get the function `g'` which is guaranteed to exist above. By the extreme value theorem and
@@ -345,9 +345,9 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
       ⟨g' x, hgt' x hx, hx'⟩
   obtain ⟨g, hg, hgc⟩ := exists_mul_le_one_eq_on_ge g' hc
   refine' ⟨g * g', _, hg, hgc.mono hgc'⟩
-  convert I.mul_mem_left ((algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) hI'
+  convert I.mul_mem_left ((algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) hI'
   ext
-  simp only [algebraMapClm_coe, ContinuousMap.coe_coe, comp_apply, coe_mul, Pi.mul_apply, map_mul]
+  simp only [algebraMapCLM_coe, ContinuousMap.coe_coe, comp_apply, coe_mul, Pi.mul_apply, map_mul]
 #align continuous_map.ideal_of_set_of_ideal_eq_closure ContinuousMap.idealOfSet_ofIdeal_eq_closure
 -/
 
Diff
@@ -177,7 +177,7 @@ theorem setOfTop_eq_univ [Nontrivial R] : setOfIdeal (⊀ : Ideal C(X, R)) = Set
 theorem idealOfEmpty_eq_bot : idealOfSet R (βˆ… : Set X) = βŠ₯ :=
   Ideal.ext fun f => by
     simpa only [mem_ideal_of_set, Set.compl_empty, Set.mem_univ, forall_true_left, Ideal.mem_bot,
-      FunLike.ext_iff] using Iff.rfl
+      DFunLike.ext_iff] using Iff.rfl
 #align continuous_map.ideal_of_empty_eq_bot ContinuousMap.idealOfEmpty_eq_bot
 -/
 
@@ -516,7 +516,7 @@ theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) :=
     rcases exists_continuous_zero_one_of_isClosed (isClosed_singleton : _root_.is_closed {x})
         (isClosed_singleton : _root_.is_closed {y}) (set.disjoint_singleton.mpr hxy) with
       ⟨f, fx, fy, -⟩
-    rw [← Ne.def, FunLike.ne_iff]
+    rw [← Ne.def, DFunLike.ne_iff]
     use(⟨coe, IsROrC.continuous_ofReal⟩ : C(ℝ, π•œ)).comp f
     simpa only [continuous_map_eval_apply_apply, ContinuousMap.comp_apply, coe_mk, Ne.def,
       IsROrC.ofReal_inj] using
Diff
@@ -420,7 +420,7 @@ theorem idealOfSet_isMaximal_iff (s : Opens X) :
     (idealOfSet π•œ (s : Set X)).IsMaximal ↔ IsCoatom s :=
   by
   rw [Ideal.isMaximal_def]
-  refine' (ideal_opens_gi X π•œ).isCoatom_iff (fun I hI => _) s
+  refine' (ideal_opens_gi X π•œ).isCoatom_iff_ge_of_le (fun I hI => _) s
   rw [← Ideal.isMaximal_def] at hI 
   skip
   exact ideal_of_set_of_ideal_is_closed inferInstance
Diff
@@ -377,7 +377,7 @@ theorem setOfIdeal_ofSet_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ s
   /- Apply Urysohn's lemma to get `g : C(X, ℝ)` which is zero on `sᢜ` and `g x β‰  0`, then compose
     with the natural embedding `ℝ β†ͺ π•œ` to produce the desired `f`. -/
   obtain ⟨g, hgs, hgx : Set.EqOn g 1 {x}, -⟩ :=
-    exists_continuous_zero_one_of_closed isClosed_closure isClosed_singleton
+    exists_continuous_zero_one_of_isClosed isClosed_closure isClosed_singleton
       (set.disjoint_singleton_right.mpr hx)
   exact
     ⟨⟨fun x => g x, continuous_of_real.comp (map_continuous g)⟩, by
@@ -513,7 +513,7 @@ theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) :=
   refine' ⟨fun x y hxy => _, fun Ο† => _⟩
   Β· contrapose! hxy
     haveI := @T4Space.of_compactSpace_t2Space X _ _ _
-    rcases exists_continuous_zero_one_of_closed (isClosed_singleton : _root_.is_closed {x})
+    rcases exists_continuous_zero_one_of_isClosed (isClosed_singleton : _root_.is_closed {x})
         (isClosed_singleton : _root_.is_closed {y}) (set.disjoint_singleton.mpr hxy) with
       ⟨f, fx, fy, -⟩
     rw [← Ne.def, FunLike.ne_iff]
Diff
@@ -3,12 +3,12 @@ Copyright (c) 2022 Jireh Loreaux. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
 -/
-import Mathbin.Topology.Algebra.Algebra
-import Mathbin.Topology.ContinuousFunction.Compact
-import Mathbin.Topology.UrysohnsLemma
-import Mathbin.Data.IsROrC.Basic
-import Mathbin.Analysis.NormedSpace.Units
-import Mathbin.Topology.Algebra.Module.CharacterSpace
+import Topology.Algebra.Algebra
+import Topology.ContinuousFunction.Compact
+import Topology.UrysohnsLemma
+import Data.IsROrC.Basic
+import Analysis.NormedSpace.Units
+import Topology.Algebra.Module.CharacterSpace
 
 #align_import topology.continuous_function.ideals from "leanprover-community/mathlib"@"8af7091a43227e179939ba132e54e54e9f3b089a"
 
Diff
@@ -373,7 +373,7 @@ theorem setOfIdeal_ofSet_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ s
   -- If `x βˆ‰ closure sᢜ`, we must produce `f : C(X, π•œ)` which is zero on `sᢜ` and `f x β‰  0`.
   rw [← compl_compl (interior s), ← closure_compl] at hx 
   simp_rw [mem_set_of_ideal, mem_ideal_of_set]
-  haveI : NormalSpace X := normalOfCompactT2
+  haveI : NormalSpace X := T4Space.of_compactSpace_t2Space
   /- Apply Urysohn's lemma to get `g : C(X, ℝ)` which is zero on `sᢜ` and `g x β‰  0`, then compose
     with the natural embedding `ℝ β†ͺ π•œ` to produce the desired `f`. -/
   obtain ⟨g, hgs, hgx : Set.EqOn g 1 {x}, -⟩ :=
@@ -512,7 +512,7 @@ theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) :=
   by
   refine' ⟨fun x y hxy => _, fun Ο† => _⟩
   Β· contrapose! hxy
-    haveI := @normalOfCompactT2 X _ _ _
+    haveI := @T4Space.of_compactSpace_t2Space X _ _ _
     rcases exists_continuous_zero_one_of_closed (isClosed_singleton : _root_.is_closed {x})
         (isClosed_singleton : _root_.is_closed {y}) (set.disjoint_singleton.mpr hxy) with
       ⟨f, fx, fy, -⟩
Diff
@@ -517,7 +517,7 @@ theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) :=
         (isClosed_singleton : _root_.is_closed {y}) (set.disjoint_singleton.mpr hxy) with
       ⟨f, fx, fy, -⟩
     rw [← Ne.def, FunLike.ne_iff]
-    use (⟨coe, IsROrC.continuous_ofReal⟩ : C(ℝ, π•œ)).comp f
+    use(⟨coe, IsROrC.continuous_ofReal⟩ : C(ℝ, π•œ)).comp f
     simpa only [continuous_map_eval_apply_apply, ContinuousMap.comp_apply, coe_mk, Ne.def,
       IsROrC.ofReal_inj] using
       ((fx (Set.mem_singleton x)).symm β–Έ (fy (Set.mem_singleton y)).symm β–Έ zero_ne_one : f x β‰  f y)
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2022 Jireh Loreaux. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
-
-! This file was ported from Lean 3 source module topology.continuous_function.ideals
-! leanprover-community/mathlib commit 8af7091a43227e179939ba132e54e54e9f3b089a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Topology.Algebra.Algebra
 import Mathbin.Topology.ContinuousFunction.Compact
@@ -15,6 +10,8 @@ import Mathbin.Data.IsROrC.Basic
 import Mathbin.Analysis.NormedSpace.Units
 import Mathbin.Topology.Algebra.Module.CharacterSpace
 
+#align_import topology.continuous_function.ideals from "leanprover-community/mathlib"@"8af7091a43227e179939ba132e54e54e9f3b089a"
+
 /-!
 # Ideals of continuous functions
 
Diff
@@ -493,7 +493,7 @@ def continuousMapEval : C(X, characterSpace π•œ C(X, π•œ))
     ⟨{  toFun := fun f => f x
         map_add' := fun f g => rfl
         map_smul' := fun z f => rfl
-        cont := continuous_eval_const' x }, by rw [character_space.eq_set_map_one_map_mul];
+        cont := continuous_eval_const x }, by rw [character_space.eq_set_map_one_map_mul];
       exact ⟨rfl, fun f g => rfl⟩⟩
   continuous_toFun := Continuous.subtype_mk (continuous_of_continuous_eval map_continuous) _
 #align weak_dual.character_space.continuous_map_eval WeakDual.CharacterSpace.continuousMapEval
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
 
 ! This file was ported from Lean 3 source module topology.continuous_function.ideals
-! leanprover-community/mathlib commit c2258f7bf086b17eac0929d635403780c39e239f
+! leanprover-community/mathlib commit 8af7091a43227e179939ba132e54e54e9f3b089a
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -18,6 +18,9 @@ import Mathbin.Topology.Algebra.Module.CharacterSpace
 /-!
 # Ideals of continuous functions
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 For a topological semiring `R` and a topological space `X` there is a Galois connection between
 `ideal C(X, R)` and `set X` given by sending each `I : ideal C(X, R)` to
 `{x : X | βˆ€ f ∈ I, f x = 0}ᢜ` and mapping `s : set X` to the ideal with carrier
Diff
@@ -87,6 +87,7 @@ variable [TopologicalSpace R] [TopologicalSemiring R]
 
 variable (R)
 
+#print ContinuousMap.idealOfSet /-
 /-- Given a topological ring `R` and `s : set X`, construct the ideal in `C(X, R)` of functions
 which vanish on the complement of `s`. -/
 def idealOfSet (s : Set X) : Ideal C(X, R)
@@ -96,7 +97,9 @@ def idealOfSet (s : Set X) : Ideal C(X, R)
   zero_mem' _ _ := rfl
   smul_mem' c f hf x hx := MulZeroClass.mul_zero (c x) β–Έ congr_arg (fun y => c x * y) (hf x hx)
 #align continuous_map.ideal_of_set ContinuousMap.idealOfSet
+-/
 
+#print ContinuousMap.idealOfSet_closed /-
 theorem idealOfSet_closed [LocallyCompactSpace X] [T2Space R] (s : Set X) :
     IsClosed (idealOfSet R s : Set C(X, R)) :=
   by
@@ -105,34 +108,46 @@ theorem idealOfSet_closed [LocallyCompactSpace X] [T2Space R] (s : Set X) :
     isClosed_iInter fun x =>
       isClosed_iInter fun hx => isClosed_eq (continuous_eval_const' x) continuous_const
 #align continuous_map.ideal_of_set_closed ContinuousMap.idealOfSet_closed
+-/
 
 variable {R}
 
+#print ContinuousMap.mem_idealOfSet /-
 theorem mem_idealOfSet {s : Set X} {f : C(X, R)} :
     f ∈ idealOfSet R s ↔ βˆ€ ⦃x : X⦄, x ∈ sᢜ β†’ f x = 0 :=
   Iff.rfl
 #align continuous_map.mem_ideal_of_set ContinuousMap.mem_idealOfSet
+-/
 
+#print ContinuousMap.not_mem_idealOfSet /-
 theorem not_mem_idealOfSet {s : Set X} {f : C(X, R)} : f βˆ‰ idealOfSet R s ↔ βˆƒ x ∈ sᢜ, f x β‰  0 := by
   simp_rw [mem_ideal_of_set, exists_prop]; push_neg
 #align continuous_map.not_mem_ideal_of_set ContinuousMap.not_mem_idealOfSet
+-/
 
+#print ContinuousMap.setOfIdeal /-
 /-- Given an ideal `I` of `C(X, R)`, construct the set of points for which every function in the
 ideal vanishes on the complement. -/
 def setOfIdeal (I : Ideal C(X, R)) : Set X :=
   {x : X | βˆ€ f ∈ I, (f : C(X, R)) x = 0}ᢜ
 #align continuous_map.set_of_ideal ContinuousMap.setOfIdeal
+-/
 
+#print ContinuousMap.not_mem_setOfIdeal /-
 theorem not_mem_setOfIdeal {I : Ideal C(X, R)} {x : X} :
     x βˆ‰ setOfIdeal I ↔ βˆ€ ⦃f : C(X, R)⦄, f ∈ I β†’ f x = 0 := by
   rw [← Set.mem_compl_iff, set_of_ideal, compl_compl, Set.mem_setOf]
 #align continuous_map.not_mem_set_of_ideal ContinuousMap.not_mem_setOfIdeal
+-/
 
+#print ContinuousMap.mem_setOfIdeal /-
 theorem mem_setOfIdeal {I : Ideal C(X, R)} {x : X} :
     x ∈ setOfIdeal I ↔ βˆƒ f ∈ I, (f : C(X, R)) x β‰  0 := by
   simp_rw [set_of_ideal, Set.mem_compl_iff, Set.mem_setOf, exists_prop]; push_neg
 #align continuous_map.mem_set_of_ideal ContinuousMap.mem_setOfIdeal
+-/
 
+#print ContinuousMap.setOfIdeal_open /-
 theorem setOfIdeal_open [T2Space R] (I : Ideal C(X, R)) : IsOpen (setOfIdeal I) :=
   by
   simp only [set_of_ideal, Set.setOf_forall, isOpen_compl_iff]
@@ -140,33 +155,43 @@ theorem setOfIdeal_open [T2Space R] (I : Ideal C(X, R)) : IsOpen (setOfIdeal I)
     isClosed_iInter fun f =>
       isClosed_iInter fun hf => isClosed_eq (map_continuous f) continuous_const
 #align continuous_map.set_of_ideal_open ContinuousMap.setOfIdeal_open
+-/
 
+#print ContinuousMap.opensOfIdeal /-
 /-- The open set `set_of_ideal I` realized as a term of `opens X`. -/
 @[simps]
 def opensOfIdeal [T2Space R] (I : Ideal C(X, R)) : Opens X :=
   ⟨setOfIdeal I, setOfIdeal_open I⟩
 #align continuous_map.opens_of_ideal ContinuousMap.opensOfIdeal
+-/
 
+#print ContinuousMap.setOfTop_eq_univ /-
 @[simp]
-theorem set_of_top_eq_univ [Nontrivial R] : setOfIdeal (⊀ : Ideal C(X, R)) = Set.univ :=
+theorem setOfTop_eq_univ [Nontrivial R] : setOfIdeal (⊀ : Ideal C(X, R)) = Set.univ :=
   Set.univ_subset_iff.mp fun x hx => mem_setOfIdeal.mpr ⟨1, Submodule.mem_top, one_ne_zero⟩
-#align continuous_map.set_of_top_eq_univ ContinuousMap.set_of_top_eq_univ
+#align continuous_map.set_of_top_eq_univ ContinuousMap.setOfTop_eq_univ
+-/
 
+#print ContinuousMap.idealOfEmpty_eq_bot /-
 @[simp]
-theorem ideal_of_empty_eq_bot : idealOfSet R (βˆ… : Set X) = βŠ₯ :=
+theorem idealOfEmpty_eq_bot : idealOfSet R (βˆ… : Set X) = βŠ₯ :=
   Ideal.ext fun f => by
     simpa only [mem_ideal_of_set, Set.compl_empty, Set.mem_univ, forall_true_left, Ideal.mem_bot,
       FunLike.ext_iff] using Iff.rfl
-#align continuous_map.ideal_of_empty_eq_bot ContinuousMap.ideal_of_empty_eq_bot
+#align continuous_map.ideal_of_empty_eq_bot ContinuousMap.idealOfEmpty_eq_bot
+-/
 
+#print ContinuousMap.mem_idealOfSet_compl_singleton /-
 @[simp]
 theorem mem_idealOfSet_compl_singleton (x : X) (f : C(X, R)) :
     f ∈ idealOfSet R ({x}ᢜ : Set X) ↔ f x = 0 := by
   simp only [mem_ideal_of_set, compl_compl, Set.mem_singleton_iff, forall_eq]
 #align continuous_map.mem_ideal_of_set_compl_singleton ContinuousMap.mem_idealOfSet_compl_singleton
+-/
 
 variable (X R)
 
+#print ContinuousMap.ideal_gc /-
 theorem ideal_gc : GaloisConnection (setOfIdeal : Ideal C(X, R) β†’ Set X) (idealOfSet R) :=
   by
   refine' fun I s => ⟨fun h f hf => _, fun h x hx => _⟩
@@ -177,6 +202,7 @@ theorem ideal_gc : GaloisConnection (setOfIdeal : Ideal C(X, R) β†’ Set X) (idea
     by_contra hx'
     exact not_mem_ideal_of_set.mpr ⟨x, hx', hfx⟩ (h hf)
 #align continuous_map.ideal_gc ContinuousMap.ideal_gc
+-/
 
 end TopologicalRing
 
@@ -186,6 +212,7 @@ open IsROrC
 
 variable {X π•œ : Type _} [IsROrC π•œ] [TopologicalSpace X]
 
+#print ContinuousMap.exists_mul_le_one_eqOn_ge /-
 /-- An auxiliary lemma used in the proof of `ideal_of_set_of_ideal_eq_closure` which may be useful
 on its own. -/
 theorem exists_mul_le_one_eqOn_ge (f : C(X, ℝβ‰₯0)) {c : ℝβ‰₯0} (hc : 0 < c) :
@@ -200,11 +227,13 @@ theorem exists_mul_le_one_eqOn_ge (f : C(X, ℝβ‰₯0)) {c : ℝβ‰₯0} (hc : 0 < c)
       Pi.one_apply, sup_eq_left.mpr (set.mem_set_of.mp hx)] using
       inv_mul_cancel (hc.trans_le hx).ne'⟩
 #align continuous_map.exists_mul_le_one_eq_on_ge ContinuousMap.exists_mul_le_one_eqOn_ge
+-/
 
 variable [CompactSpace X] [T2Space X]
 
+#print ContinuousMap.idealOfSet_ofIdeal_eq_closure /-
 @[simp]
-theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
+theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
     idealOfSet π•œ (setOfIdeal I) = I.closure :=
   by
   /- Since `ideal_of_set π•œ (set_of_ideal I)` is closed and contains `I`, it contains `I.closure`.
@@ -319,17 +348,21 @@ theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
   convert I.mul_mem_left ((algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) hI'
   ext
   simp only [algebraMapClm_coe, ContinuousMap.coe_coe, comp_apply, coe_mul, Pi.mul_apply, map_mul]
-#align continuous_map.ideal_of_set_of_ideal_eq_closure ContinuousMap.idealOfSet_of_ideal_eq_closure
+#align continuous_map.ideal_of_set_of_ideal_eq_closure ContinuousMap.idealOfSet_ofIdeal_eq_closure
+-/
 
-theorem idealOfSet_of_ideal_isClosed {I : Ideal C(X, π•œ)} (hI : IsClosed (I : Set C(X, π•œ))) :
+#print ContinuousMap.idealOfSet_ofIdeal_isClosed /-
+theorem idealOfSet_ofIdeal_isClosed {I : Ideal C(X, π•œ)} (hI : IsClosed (I : Set C(X, π•œ))) :
     idealOfSet π•œ (setOfIdeal I) = I :=
-  (idealOfSet_of_ideal_eq_closure I).trans (Ideal.ext <| Set.ext_iff.mp hI.closure_eq)
-#align continuous_map.ideal_of_set_of_ideal_is_closed ContinuousMap.idealOfSet_of_ideal_isClosed
+  (idealOfSet_ofIdeal_eq_closure I).trans (Ideal.ext <| Set.ext_iff.mp hI.closure_eq)
+#align continuous_map.ideal_of_set_of_ideal_is_closed ContinuousMap.idealOfSet_ofIdeal_isClosed
+-/
 
 variable (π•œ)
 
+#print ContinuousMap.setOfIdeal_ofSet_eq_interior /-
 @[simp]
-theorem setOfIdeal_of_set_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ s) = interior s :=
+theorem setOfIdeal_ofSet_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ s) = interior s :=
   by
   refine'
     Set.Subset.antisymm
@@ -351,32 +384,38 @@ theorem setOfIdeal_of_set_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ
       simpa only [coe_mk, of_real_eq_zero] using fun x hx => hgs (subset_closure hx), by
       simpa only [coe_mk, hgx (Set.mem_singleton x), Pi.one_apply, IsROrC.ofReal_one] using
         one_ne_zero⟩
-#align continuous_map.set_of_ideal_of_set_eq_interior ContinuousMap.setOfIdeal_of_set_eq_interior
+#align continuous_map.set_of_ideal_of_set_eq_interior ContinuousMap.setOfIdeal_ofSet_eq_interior
+-/
 
-theorem setOfIdeal_of_set_of_isOpen {s : Set X} (hs : IsOpen s) : setOfIdeal (idealOfSet π•œ s) = s :=
-  (setOfIdeal_of_set_eq_interior π•œ s).trans hs.interior_eq
-#align continuous_map.set_of_ideal_of_set_of_is_open ContinuousMap.setOfIdeal_of_set_of_isOpen
+#print ContinuousMap.setOfIdeal_ofSet_of_isOpen /-
+theorem setOfIdeal_ofSet_of_isOpen {s : Set X} (hs : IsOpen s) : setOfIdeal (idealOfSet π•œ s) = s :=
+  (setOfIdeal_ofSet_eq_interior π•œ s).trans hs.interior_eq
+#align continuous_map.set_of_ideal_of_set_of_is_open ContinuousMap.setOfIdeal_ofSet_of_isOpen
+-/
 
 variable (X)
 
+#print ContinuousMap.idealOpensGI /-
 /-- The Galois insertion `continuous_map.opens_of_ideal : ideal C(X, π•œ) β†’ opens X` and
 `Ξ» s, continuous_map.ideal_of_set ↑s`. -/
 @[simps]
-def idealOpensGi : GaloisInsertion (opensOfIdeal : Ideal C(X, π•œ) β†’ Opens X) fun s => idealOfSet π•œ s
+def idealOpensGI : GaloisInsertion (opensOfIdeal : Ideal C(X, π•œ) β†’ Opens X) fun s => idealOfSet π•œ s
     where
   choice I hI := opensOfIdeal I.closure
   gc I s := ideal_gc X π•œ I s
-  le_l_u s := (setOfIdeal_of_set_of_isOpen π•œ s.IsOpen).ge
+  le_l_u s := (setOfIdeal_ofSet_of_isOpen π•œ s.IsOpen).ge
   choice_eq I hI :=
     congr_arg _ <|
       Ideal.ext
         (Set.ext_iff.mp
           (isClosed_of_closure_subset <|
-              (idealOfSet_of_ideal_eq_closure I β–Έ hI : I.closure ≀ I)).closure_eq)
-#align continuous_map.ideal_opens_gi ContinuousMap.idealOpensGi
+              (idealOfSet_ofIdeal_eq_closure I β–Έ hI : I.closure ≀ I)).closure_eq)
+#align continuous_map.ideal_opens_gi ContinuousMap.idealOpensGI
+-/
 
 variable {X}
 
+#print ContinuousMap.idealOfSet_isMaximal_iff /-
 theorem idealOfSet_isMaximal_iff (s : Opens X) :
     (idealOfSet π•œ (s : Set X)).IsMaximal ↔ IsCoatom s :=
   by
@@ -386,13 +425,17 @@ theorem idealOfSet_isMaximal_iff (s : Opens X) :
   skip
   exact ideal_of_set_of_ideal_is_closed inferInstance
 #align continuous_map.ideal_of_set_is_maximal_iff ContinuousMap.idealOfSet_isMaximal_iff
+-/
 
-theorem ideal_of_compl_singleton_isMaximal (x : X) : (idealOfSet π•œ ({x}ᢜ : Set X)).IsMaximal :=
+#print ContinuousMap.idealOf_compl_singleton_isMaximal /-
+theorem idealOf_compl_singleton_isMaximal (x : X) : (idealOfSet π•œ ({x}ᢜ : Set X)).IsMaximal :=
   (idealOfSet_isMaximal_iff π•œ (Closeds.singleton x).compl).mpr <| Opens.isCoatom_iff.mpr ⟨x, rfl⟩
-#align continuous_map.ideal_of_compl_singleton_is_maximal ContinuousMap.ideal_of_compl_singleton_isMaximal
+#align continuous_map.ideal_of_compl_singleton_is_maximal ContinuousMap.idealOf_compl_singleton_isMaximal
+-/
 
 variable {π•œ}
 
+#print ContinuousMap.setOfIdeal_eq_compl_singleton /-
 theorem setOfIdeal_eq_compl_singleton (I : Ideal C(X, π•œ)) [hI : I.IsMaximal] :
     βˆƒ x : X, setOfIdeal I = {x}ᢜ :=
   by
@@ -401,7 +444,9 @@ theorem setOfIdeal_eq_compl_singleton (I : Ideal C(X, π•œ)) [hI : I.IsMaximal]
   obtain ⟨x, hx⟩ := opens.is_coatom_iff.1 ((ideal_of_set_is_maximal_iff π•œ (opens_of_ideal I)).1 h)
   exact ⟨x, congr_arg coe hx⟩
 #align continuous_map.set_of_ideal_eq_compl_singleton ContinuousMap.setOfIdeal_eq_compl_singleton
+-/
 
+#print ContinuousMap.ideal_isMaximal_iff /-
 theorem ideal_isMaximal_iff (I : Ideal C(X, π•œ)) [hI : IsClosed (I : Set C(X, π•œ))] :
     I.IsMaximal ↔ βˆƒ x : X, idealOfSet π•œ ({x}ᢜ) = I :=
   by
@@ -416,6 +461,7 @@ theorem ideal_isMaximal_iff (I : Ideal C(X, π•œ)) [hI : IsClosed (I : Set C(X,
       simpa only [ideal_of_set_of_ideal_eq_closure, Ideal.closure_eq_of_isClosed] using
         congr_arg (ideal_of_set π•œ) hx.symm⟩
 #align continuous_map.ideal_is_maximal_iff ContinuousMap.ideal_isMaximal_iff
+-/
 
 end IsROrC
 
@@ -435,6 +481,7 @@ variable [LocallyCompactSpace X] [CommRing π•œ] [TopologicalSpace π•œ] [Topolo
 
 variable [Nontrivial π•œ] [NoZeroDivisors π•œ]
 
+#print WeakDual.CharacterSpace.continuousMapEval /-
 /-- The natural continuous map from a locally compact topological space `X` to the
 `character_space π•œ C(X, π•œ)` which sends `x : X` to point evaluation at `x`. -/
 def continuousMapEval : C(X, characterSpace π•œ C(X, π•œ))
@@ -446,17 +493,21 @@ def continuousMapEval : C(X, characterSpace π•œ C(X, π•œ))
         cont := continuous_eval_const' x }, by rw [character_space.eq_set_map_one_map_mul];
       exact ⟨rfl, fun f g => rfl⟩⟩
   continuous_toFun := Continuous.subtype_mk (continuous_of_continuous_eval map_continuous) _
-#align weak_dual.character_space.continuous_map_eval WeakDual.characterSpace.continuousMapEval
+#align weak_dual.character_space.continuous_map_eval WeakDual.CharacterSpace.continuousMapEval
+-/
 
+#print WeakDual.CharacterSpace.continuousMapEval_apply_apply /-
 @[simp]
 theorem continuousMapEval_apply_apply (x : X) (f : C(X, π•œ)) : continuousMapEval X π•œ x f = f x :=
   rfl
-#align weak_dual.character_space.continuous_map_eval_apply_apply WeakDual.characterSpace.continuousMapEval_apply_apply
+#align weak_dual.character_space.continuous_map_eval_apply_apply WeakDual.CharacterSpace.continuousMapEval_apply_apply
+-/
 
 end ContinuousMapEval
 
 variable [CompactSpace X] [T2Space X] [IsROrC π•œ]
 
+#print WeakDual.CharacterSpace.continuousMapEval_bijective /-
 theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) :=
   by
   refine' ⟨fun x y hxy => _, fun Ο† => _⟩
@@ -474,15 +525,18 @@ theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) :=
     refine' ⟨x, ext_ker <| Ideal.ext fun f => _⟩
     simpa only [RingHom.mem_ker, continuous_map_eval_apply_apply, mem_ideal_of_set_compl_singleton,
       RingHom.mem_ker] using set_like.ext_iff.mp hx f
-#align weak_dual.character_space.continuous_map_eval_bijective WeakDual.characterSpace.continuousMapEval_bijective
+#align weak_dual.character_space.continuous_map_eval_bijective WeakDual.CharacterSpace.continuousMapEval_bijective
+-/
 
+#print WeakDual.CharacterSpace.homeoEval /-
 /-- This is the natural homeomorphism between a compact Hausdorff space `X` and the
 `character_space π•œ C(X, π•œ)`. -/
 noncomputable def homeoEval : X β‰ƒβ‚œ characterSpace π•œ C(X, π•œ) :=
   @Continuous.homeoOfEquivCompactToT2 _ _ _ _ _ _
     { Equiv.ofBijective _ (continuousMapEval_bijective X π•œ) with toFun := continuousMapEval X π•œ }
     (map_continuous (continuousMapEval X π•œ))
-#align weak_dual.character_space.homeo_eval WeakDual.characterSpace.homeoEval
+#align weak_dual.character_space.homeo_eval WeakDual.CharacterSpace.homeoEval
+-/
 
 end CharacterSpace
 
Diff
@@ -254,7 +254,6 @@ theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
             simp only [Algebra.algebraMap_eq_smul_one, NNReal.smul_def, NNReal.coe_sub (hg x),
               sub_smul, Nonneg.coe_one, one_smul]
           _ ≀ 1 := (nnnorm_algebraMap_nNReal π•œ (1 - g x)).trans_le tsub_le_self
-          
       calc
         β€–f x - f x * (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g xβ€–β‚Š =
             β€–f x * (1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
@@ -263,7 +262,6 @@ theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
           ((nnnorm_mul_le _ _).trans
             (mul_le_mul_right' (not_le.mp <| show ¬Ρ / 2 ≀ β€–f xβ€–β‚Š from hx).le _))
         _ ≀ Ξ΅ / 2 := by simpa only [mul_one] using mul_le_mul_left' this _
-        
   /- There is some `g' : C(X, ℝβ‰₯0)` which is strictly positive on `t` such that the composition
     `↑g` with the natural embedding of `ℝβ‰₯0` into `π•œ` lies in `I`. This follows from compactness of
     `t` and that we can do it in any neighborhood of a point `x ∈ t`. Indeed, since `x ∈ t`, then
Diff
@@ -91,7 +91,7 @@ variable (R)
 which vanish on the complement of `s`. -/
 def idealOfSet (s : Set X) : Ideal C(X, R)
     where
-  carrier := { f : C(X, R) | βˆ€ x ∈ sᢜ, f x = 0 }
+  carrier := {f : C(X, R) | βˆ€ x ∈ sᢜ, f x = 0}
   add_mem' f g hf hg x hx := by simp only [hf x hx, hg x hx, coe_add, Pi.add_apply, add_zero]
   zero_mem' _ _ := rfl
   smul_mem' c f hf x hx := MulZeroClass.mul_zero (c x) β–Έ congr_arg (fun y => c x * y) (hf x hx)
@@ -120,7 +120,7 @@ theorem not_mem_idealOfSet {s : Set X} {f : C(X, R)} : f βˆ‰ idealOfSet R s ↔
 /-- Given an ideal `I` of `C(X, R)`, construct the set of points for which every function in the
 ideal vanishes on the complement. -/
 def setOfIdeal (I : Ideal C(X, R)) : Set X :=
-  { x : X | βˆ€ f ∈ I, (f : C(X, R)) x = 0 }ᢜ
+  {x : X | βˆ€ f ∈ I, (f : C(X, R)) x = 0}ᢜ
 #align continuous_map.set_of_ideal ContinuousMap.setOfIdeal
 
 theorem not_mem_setOfIdeal {I : Ideal C(X, R)} {x : X} :
@@ -189,7 +189,7 @@ variable {X π•œ : Type _} [IsROrC π•œ] [TopologicalSpace X]
 /-- An auxiliary lemma used in the proof of `ideal_of_set_of_ideal_eq_closure` which may be useful
 on its own. -/
 theorem exists_mul_le_one_eqOn_ge (f : C(X, ℝβ‰₯0)) {c : ℝβ‰₯0} (hc : 0 < c) :
-    βˆƒ g : C(X, ℝβ‰₯0), (βˆ€ x : X, (g * f) x ≀ 1) ∧ { x : X | c ≀ f x }.EqOn (g * f) 1 :=
+    βˆƒ g : C(X, ℝβ‰₯0), (βˆ€ x : X, (g * f) x ≀ 1) ∧ {x : X | c ≀ f x}.EqOn (g * f) 1 :=
   ⟨{  toFun := (f βŠ” const X c)⁻¹
       continuous_toFun :=
         ((map_continuous f).sup <| map_continuous _).invβ‚€ fun _ => (hc.trans_le le_sup_right).ne' },
@@ -219,7 +219,7 @@ theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
   simp_rw [dist_nndist]
   norm_cast
   -- Let `t := {x : X | Ξ΅ / 2 ≀ β€–f xβ€–β‚Š}}` which is closed and disjoint from `set_of_ideal I`.
-  set t := { x : X | Ξ΅ / 2 ≀ β€–f xβ€–β‚Š }
+  set t := {x : X | Ξ΅ / 2 ≀ β€–f xβ€–β‚Š}
   have ht : IsClosed t := isClosed_le continuous_const (map_continuous f).nnnorm
   have htI : Disjoint t (set_of_ideal Iᢜ) :=
     by
@@ -298,7 +298,7 @@ theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
       obtain ⟨g, hI, hgx⟩ := hx
       have := (map_continuous g).ContinuousAt.eventually_ne hgx
       refine'
-        ⟨{ y : X | g y β‰  0 } ∩ t,
+        ⟨{y : X | g y β‰  0} ∩ t,
           mem_nhds_within_iff_exists_mem_nhds_inter.mpr ⟨_, this, Set.Subset.rfl⟩,
           ⟨⟨fun x => β€–g xβ€–β‚Š ^ 2, (map_continuous g).nnnorm.pow 2⟩, _, fun x hx =>
             pow_pos (norm_pos_iff.mpr hx.1) 2⟩⟩
Diff
@@ -294,7 +294,7 @@ theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
         simpa only [zero_add] using add_lt_add_of_le_of_lt zero_le' (hgtβ‚‚ x hx)
     Β· intro x hx
       replace hx := htI.subset_compl_right hx
-      rw [compl_compl, mem_set_of_ideal] at hx
+      rw [compl_compl, mem_set_of_ideal] at hx 
       obtain ⟨g, hI, hgx⟩ := hx
       have := (map_continuous g).ContinuousAt.eventually_ne hgx
       refine'
@@ -311,9 +311,9 @@ theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
     compactness of `t`, there is some `0 < c` such that `c ≀ g' x` for all `x ∈ t`. Then by
     `main_lemma_aux` there is some `g` for which `g * g'` is the desired function. -/
   obtain ⟨g', hI', hgt'⟩ := this
-  obtain ⟨c, hc, hgc'⟩ : βˆƒ (c : _)(hc : 0 < c), βˆ€ y : X, y ∈ t β†’ c ≀ g' y :=
+  obtain ⟨c, hc, hgc'⟩ : βˆƒ (c : _) (hc : 0 < c), βˆ€ y : X, y ∈ t β†’ c ≀ g' y :=
     t.eq_empty_or_nonempty.elim
-      (fun ht' => ⟨1, zero_lt_one, fun y hy => False.elim (by rwa [ht'] at hy)⟩) fun ht' =>
+      (fun ht' => ⟨1, zero_lt_one, fun y hy => False.elim (by rwa [ht'] at hy )⟩) fun ht' =>
       let ⟨x, hx, hx'⟩ := ht.is_compact.exists_forall_le ht' (map_continuous g').ContinuousOn
       ⟨g' x, hgt' x hx, hx'⟩
   obtain ⟨g, hg, hgc⟩ := exists_mul_le_one_eq_on_ge g' hc
@@ -340,7 +340,7 @@ theorem setOfIdeal_of_set_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ
         set.not_mem_compl_iff.mp (mt (@hf x) hfx))
       fun x hx => _
   -- If `x βˆ‰ closure sᢜ`, we must produce `f : C(X, π•œ)` which is zero on `sᢜ` and `f x β‰  0`.
-  rw [← compl_compl (interior s), ← closure_compl] at hx
+  rw [← compl_compl (interior s), ← closure_compl] at hx 
   simp_rw [mem_set_of_ideal, mem_ideal_of_set]
   haveI : NormalSpace X := normalOfCompactT2
   /- Apply Urysohn's lemma to get `g : C(X, ℝ)` which is zero on `sᢜ` and `g x β‰  0`, then compose
@@ -384,7 +384,7 @@ theorem idealOfSet_isMaximal_iff (s : Opens X) :
   by
   rw [Ideal.isMaximal_def]
   refine' (ideal_opens_gi X π•œ).isCoatom_iff (fun I hI => _) s
-  rw [← Ideal.isMaximal_def] at hI
+  rw [← Ideal.isMaximal_def] at hI 
   skip
   exact ideal_of_set_of_ideal_is_closed inferInstance
 #align continuous_map.ideal_of_set_is_maximal_iff ContinuousMap.idealOfSet_isMaximal_iff
Diff
@@ -73,7 +73,7 @@ ideal, continuous function, compact, Hausdorff
 -/
 
 
-open NNReal
+open scoped NNReal
 
 namespace ContinuousMap
 
Diff
@@ -113,10 +113,8 @@ theorem mem_idealOfSet {s : Set X} {f : C(X, R)} :
   Iff.rfl
 #align continuous_map.mem_ideal_of_set ContinuousMap.mem_idealOfSet
 
-theorem not_mem_idealOfSet {s : Set X} {f : C(X, R)} : f βˆ‰ idealOfSet R s ↔ βˆƒ x ∈ sᢜ, f x β‰  0 :=
-  by
-  simp_rw [mem_ideal_of_set, exists_prop]
-  push_neg
+theorem not_mem_idealOfSet {s : Set X} {f : C(X, R)} : f βˆ‰ idealOfSet R s ↔ βˆƒ x ∈ sᢜ, f x β‰  0 := by
+  simp_rw [mem_ideal_of_set, exists_prop]; push_neg
 #align continuous_map.not_mem_ideal_of_set ContinuousMap.not_mem_idealOfSet
 
 /-- Given an ideal `I` of `C(X, R)`, construct the set of points for which every function in the
@@ -131,10 +129,8 @@ theorem not_mem_setOfIdeal {I : Ideal C(X, R)} {x : X} :
 #align continuous_map.not_mem_set_of_ideal ContinuousMap.not_mem_setOfIdeal
 
 theorem mem_setOfIdeal {I : Ideal C(X, R)} {x : X} :
-    x ∈ setOfIdeal I ↔ βˆƒ f ∈ I, (f : C(X, R)) x β‰  0 :=
-  by
-  simp_rw [set_of_ideal, Set.mem_compl_iff, Set.mem_setOf, exists_prop]
-  push_neg
+    x ∈ setOfIdeal I ↔ βˆƒ f ∈ I, (f : C(X, R)) x β‰  0 := by
+  simp_rw [set_of_ideal, Set.mem_compl_iff, Set.mem_setOf, exists_prop]; push_neg
 #align continuous_map.mem_set_of_ideal ContinuousMap.mem_setOfIdeal
 
 theorem setOfIdeal_open [T2Space R] (I : Ideal C(X, R)) : IsOpen (setOfIdeal I) :=
@@ -286,8 +282,7 @@ theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
       ext
       simp only [coe_zero, Pi.zero_apply, ContinuousMap.coe_coe, ContinuousMap.coe_comp, map_zero,
         Pi.comp_zero]
-    Β· rintro s₁ sβ‚‚ hs ⟨g, hI, hgt⟩
-      exact ⟨g, hI, fun x hx => hgt x (hs hx)⟩
+    Β· rintro s₁ sβ‚‚ hs ⟨g, hI, hgt⟩; exact ⟨g, hI, fun x hx => hgt x (hs hx)⟩
     Β· rintro s₁ sβ‚‚ ⟨g₁, hI₁, hgtβ‚βŸ© ⟨gβ‚‚, hIβ‚‚, hgtβ‚‚βŸ©
       refine' ⟨g₁ + gβ‚‚, _, fun x hx => _⟩
       Β· convert I.add_mem hI₁ hIβ‚‚
@@ -450,9 +445,7 @@ def continuousMapEval : C(X, characterSpace π•œ C(X, π•œ))
     ⟨{  toFun := fun f => f x
         map_add' := fun f g => rfl
         map_smul' := fun z f => rfl
-        cont := continuous_eval_const' x },
-      by
-      rw [character_space.eq_set_map_one_map_mul]
+        cont := continuous_eval_const' x }, by rw [character_space.eq_set_map_one_map_mul];
       exact ⟨rfl, fun f g => rfl⟩⟩
   continuous_toFun := Continuous.subtype_mk (continuous_of_continuous_eval map_continuous) _
 #align weak_dual.character_space.continuous_map_eval WeakDual.characterSpace.continuousMapEval
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
 
 ! This file was ported from Lean 3 source module topology.continuous_function.ideals
-! leanprover-community/mathlib commit 25580801f04aed44a0daf912d3760d0eaaf6d1bb
+! leanprover-community/mathlib commit c2258f7bf086b17eac0929d635403780c39e239f
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -18,7 +18,7 @@ import Mathbin.Topology.Algebra.Module.CharacterSpace
 /-!
 # Ideals of continuous functions
 
-For a topological ring `R` and a topological space `X` there is a Galois connection between
+For a topological semiring `R` and a topological space `X` there is a Galois connection between
 `ideal C(X, R)` and `set X` given by sending each `I : ideal C(X, R)` to
 `{x : X | βˆ€ f ∈ I, f x = 0}ᢜ` and mapping `s : set X` to the ideal with carrier
 `{f : C(X, R) | βˆ€ x ∈ sᢜ, f x = 0}`, and we call these maps `continuous_map.set_of_ideal` and
@@ -81,7 +81,9 @@ open TopologicalSpace
 
 section TopologicalRing
 
-variable {X R : Type _} [TopologicalSpace X] [Ring R] [TopologicalSpace R] [TopologicalRing R]
+variable {X R : Type _} [TopologicalSpace X] [Semiring R]
+
+variable [TopologicalSpace R] [TopologicalSemiring R]
 
 variable (R)
 
Diff
@@ -100,8 +100,8 @@ theorem idealOfSet_closed [LocallyCompactSpace X] [T2Space R] (s : Set X) :
   by
   simp only [ideal_of_set, Submodule.coe_set_mk, Set.setOf_forall]
   exact
-    isClosed_interα΅’ fun x =>
-      isClosed_interα΅’ fun hx => isClosed_eq (continuous_eval_const' x) continuous_const
+    isClosed_iInter fun x =>
+      isClosed_iInter fun hx => isClosed_eq (continuous_eval_const' x) continuous_const
 #align continuous_map.ideal_of_set_closed ContinuousMap.idealOfSet_closed
 
 variable {R}
@@ -139,8 +139,8 @@ theorem setOfIdeal_open [T2Space R] (I : Ideal C(X, R)) : IsOpen (setOfIdeal I)
   by
   simp only [set_of_ideal, Set.setOf_forall, isOpen_compl_iff]
   exact
-    isClosed_interα΅’ fun f =>
-      isClosed_interα΅’ fun hf => isClosed_eq (map_continuous f) continuous_const
+    isClosed_iInter fun f =>
+      isClosed_iInter fun hf => isClosed_eq (map_continuous f) continuous_const
 #align continuous_map.set_of_ideal_open ContinuousMap.setOfIdeal_open
 
 /-- The open set `set_of_ideal I` realized as a term of `opens X`. -/
Diff
@@ -354,7 +354,7 @@ theorem setOfIdeal_of_set_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ
   exact
     ⟨⟨fun x => g x, continuous_of_real.comp (map_continuous g)⟩, by
       simpa only [coe_mk, of_real_eq_zero] using fun x hx => hgs (subset_closure hx), by
-      simpa only [coe_mk, hgx (Set.mem_singleton x), Pi.one_apply, IsROrC.of_real_one] using
+      simpa only [coe_mk, hgx (Set.mem_singleton x), Pi.one_apply, IsROrC.ofReal_one] using
         one_ne_zero⟩
 #align continuous_map.set_of_ideal_of_set_eq_interior ContinuousMap.setOfIdeal_of_set_eq_interior
 
@@ -473,9 +473,9 @@ theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) :=
         (isClosed_singleton : _root_.is_closed {y}) (set.disjoint_singleton.mpr hxy) with
       ⟨f, fx, fy, -⟩
     rw [← Ne.def, FunLike.ne_iff]
-    use (⟨coe, IsROrC.continuous_of_real⟩ : C(ℝ, π•œ)).comp f
+    use (⟨coe, IsROrC.continuous_ofReal⟩ : C(ℝ, π•œ)).comp f
     simpa only [continuous_map_eval_apply_apply, ContinuousMap.comp_apply, coe_mk, Ne.def,
-      IsROrC.of_real_inj] using
+      IsROrC.ofReal_inj] using
       ((fx (Set.mem_singleton x)).symm β–Έ (fy (Set.mem_singleton y)).symm β–Έ zero_ne_one : f x β‰  f y)
   Β· obtain ⟨x, hx⟩ := (ideal_is_maximal_iff (RingHom.ker Ο†)).mp inferInstance
     refine' ⟨x, ext_ker <| Ideal.ext fun f => _⟩
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
 
 ! This file was ported from Lean 3 source module topology.continuous_function.ideals
-! leanprover-community/mathlib commit d39590fc8728fbf6743249802486f8c91ffe07bc
+! leanprover-community/mathlib commit 25580801f04aed44a0daf912d3760d0eaaf6d1bb
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -309,7 +309,7 @@ theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
       ext
       simp only [comp_apply, coe_mk, algebraMapClm_coe, map_pow, coe_mul, coe_star, Pi.mul_apply,
         Pi.star_apply, star_def, ContinuousMap.coe_coe]
-      simpa only [norm_sq_eq_def', conj_mul_eq_norm_sq_left, of_real_pow]
+      simpa only [norm_sq_eq_def', IsROrC.conj_mul, of_real_pow]
   /- Get the function `g'` which is guaranteed to exist above. By the extreme value theorem and
     compactness of `t`, there is some `0 < c` such that `c ≀ g' x` for all `x ∈ t`. Then by
     `main_lemma_aux` there is some `g` for which `g * g'` is the desired function. -/
Diff
@@ -92,7 +92,7 @@ def idealOfSet (s : Set X) : Ideal C(X, R)
   carrier := { f : C(X, R) | βˆ€ x ∈ sᢜ, f x = 0 }
   add_mem' f g hf hg x hx := by simp only [hf x hx, hg x hx, coe_add, Pi.add_apply, add_zero]
   zero_mem' _ _ := rfl
-  smul_mem' c f hf x hx := mul_zero (c x) β–Έ congr_arg (fun y => c x * y) (hf x hx)
+  smul_mem' c f hf x hx := MulZeroClass.mul_zero (c x) β–Έ congr_arg (fun y => c x * y) (hf x hx)
 #align continuous_map.ideal_of_set ContinuousMap.idealOfSet
 
 theorem idealOfSet_closed [LocallyCompactSpace X] [T2Space R] (s : Set X) :
Diff
@@ -262,8 +262,8 @@ theorem idealOfSet_of_ideal_eq_closure (I : Ideal C(X, π•œ)) :
             β€–f x * (1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
           by simp only [mul_sub, coe_sub, coe_one, Pi.sub_apply, Pi.one_apply, mul_one]
         _ ≀ Ξ΅ / 2 * β€–(1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
-          (nnnorm_mul_le _ _).trans
-            (mul_le_mul_right' (not_le.mp <| show ¬Ρ / 2 ≀ β€–f xβ€–β‚Š from hx).le _)
+          ((nnnorm_mul_le _ _).trans
+            (mul_le_mul_right' (not_le.mp <| show ¬Ρ / 2 ≀ β€–f xβ€–β‚Š from hx).le _))
         _ ≀ Ξ΅ / 2 := by simpa only [mul_one] using mul_le_mul_left' this _
         
   /- There is some `g' : C(X, ℝβ‰₯0)` which is strictly positive on `t` such that the composition

Changes in mathlib4

mathlib3
mathlib4
chore: backports from #11997, adaptations for nightly-2024-04-07 (#12176)

These are changes from #11997, the latest adaptation PR for nightly-2024-04-07, which can be made directly on master.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -437,7 +437,7 @@ theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) := by
       ⟨f, fx, fy, -⟩
     rw [DFunLike.ne_iff]
     use (⟨fun (x : ℝ) => (x : π•œ), RCLike.continuous_ofReal⟩ : C(ℝ, π•œ)).comp f
-    simpa only [continuousMapEval_apply_apply, ContinuousMap.comp_apply, coe_mk, Ne.def,
+    simpa only [continuousMapEval_apply_apply, ContinuousMap.comp_apply, coe_mk, Ne,
       RCLike.ofReal_inj] using
       ((fx (Set.mem_singleton x)).symm β–Έ (fy (Set.mem_singleton y)).symm β–Έ zero_ne_one : f x β‰  f y)
   Β· obtain ⟨x, hx⟩ := (ideal_isMaximal_iff (RingHom.ker Ο†)).mp inferInstance
style: replace '.-/' by '. -/' (#11938)

Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.

Diff
@@ -198,7 +198,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
     idealOfSet π•œ (setOfIdeal I) = I.closure := by
   /- Since `idealOfSet π•œ (setOfIdeal I)` is closed and contains `I`, it contains `I.closure`.
     For the reverse inclusion, given `f ∈ idealOfSet π•œ (setOfIdeal I)` and `(Ξ΅ : ℝβ‰₯0) > 0` it
-    suffices to show that `f` is within `Ξ΅` of `I`.-/
+    suffices to show that `f` is within `Ξ΅` of `I`. -/
   refine' le_antisymm _
       ((idealOfSet_closed π•œ <| setOfIdeal I).closure_subset_iff.mpr fun f hf x hx =>
         not_mem_setOfIdeal.mp hx hf)
move(RCLike): Move out of Data (#11753)

RCLike is an analytic typeclass, hence should be under Analysis

Diff
@@ -6,7 +6,7 @@ Authors: Jireh Loreaux
 import Mathlib.Topology.Algebra.Algebra
 import Mathlib.Topology.ContinuousFunction.Compact
 import Mathlib.Topology.UrysohnsLemma
-import Mathlib.Data.RCLike.Basic
+import Mathlib.Analysis.RCLike.Basic
 import Mathlib.Analysis.NormedSpace.Units
 import Mathlib.Topology.Algebra.Module.CharacterSpace
 
chore: Rename IsROrC to RCLike (#10819)

IsROrC contains data, which goes against the expectation that classes prefixed with Is are prop-valued. People have been complaining about this on and off, so this PR renames IsROrC to RCLike.

Diff
@@ -6,7 +6,7 @@ Authors: Jireh Loreaux
 import Mathlib.Topology.Algebra.Algebra
 import Mathlib.Topology.ContinuousFunction.Compact
 import Mathlib.Topology.UrysohnsLemma
-import Mathlib.Data.IsROrC.Basic
+import Mathlib.Data.RCLike.Basic
 import Mathlib.Analysis.NormedSpace.Units
 import Mathlib.Topology.Algebra.Module.CharacterSpace
 
@@ -22,7 +22,7 @@ For a topological semiring `R` and a topological space `X` there is a Galois con
 `ContinuousMap.idealOfSet`. As long as `R` is Hausdorff, `ContinuousMap.setOfIdeal I` is open,
 and if, in addition, `X` is locally compact, then `ContinuousMap.setOfIdeal s` is closed.
 
-When `R = π•œ` with `IsROrC π•œ` and `X` is compact Hausdorff, then this Galois connection can be
+When `R = π•œ` with `RCLike π•œ` and `X` is compact Hausdorff, then this Galois connection can be
 improved to a true Galois correspondence (i.e., order isomorphism) between the type `opens X` and
 the subtype of closed ideals of `C(X, π•œ)`. Because we do not have a bundled type of closed ideals,
 we simply register this as a Galois insertion between `Ideal C(X, π•œ)` and `opens X`, which is
@@ -32,7 +32,7 @@ ideals corresponding to (complements of) singletons in `X`.
 In addition, when `X` is locally compact and `π•œ` is a nontrivial topological integral domain, then
 there is a natural continuous map from `X` to `WeakDual.characterSpace π•œ C(X, π•œ)` given by point
 evaluation, which is herein called `WeakDual.CharacterSpace.continuousMapEval`. Again, when `X` is
-compact Hausdorff and `IsROrC π•œ`, more can be obtained. In particular, in that context this map is
+compact Hausdorff and `RCLike π•œ`, more can be obtained. In particular, in that context this map is
 bijective, and since the domain is compact and the codomain is Hausdorff, it is a homeomorphism,
 herein called `WeakDual.CharacterSpace.homeoEval`.
 
@@ -47,15 +47,15 @@ herein called `WeakDual.CharacterSpace.homeoEval`.
   topological space `X` to the `WeakDual.characterSpace π•œ C(X, π•œ)` which sends `x : X` to point
   evaluation at `x`, with modest hypothesis on `π•œ`.
 * `WeakDual.CharacterSpace.homeoEval`: this is `WeakDual.CharacterSpace.continuousMapEval`
-  upgraded to a homeomorphism when `X` is compact Hausdorff and `IsROrC π•œ`.
+  upgraded to a homeomorphism when `X` is compact Hausdorff and `RCLike π•œ`.
 
 ## Main statements
 
 * `ContinuousMap.idealOfSet_ofIdeal_eq_closure`: when `X` is compact Hausdorff and
-  `IsROrC π•œ`, `idealOfSet π•œ (setOfIdeal I) = I.closure` for any ideal `I : Ideal C(X, π•œ)`.
-* `ContinuousMap.setOfIdeal_ofSet_eq_interior`: when `X` is compact Hausdorff and `IsROrC π•œ`,
+  `RCLike π•œ`, `idealOfSet π•œ (setOfIdeal I) = I.closure` for any ideal `I : Ideal C(X, π•œ)`.
+* `ContinuousMap.setOfIdeal_ofSet_eq_interior`: when `X` is compact Hausdorff and `RCLike π•œ`,
   `setOfIdeal (idealOfSet π•œ s) = interior s` for any `s : Set X`.
-* `ContinuousMap.ideal_isMaximal_iff`: when `X` is compact Hausdorff and `IsROrC π•œ`, a closed
+* `ContinuousMap.ideal_isMaximal_iff`: when `X` is compact Hausdorff and `RCLike π•œ`, a closed
   ideal of `C(X, π•œ)` is maximal if and only if it is `idealOfSet π•œ {x}ᢜ` for some `x : X`.
 
 ## Implementation details
@@ -170,11 +170,11 @@ theorem ideal_gc : GaloisConnection (setOfIdeal : Ideal C(X, R) β†’ Set X) (idea
 
 end TopologicalRing
 
-section IsROrC
+section RCLike
 
-open IsROrC
+open RCLike
 
-variable {X π•œ : Type*} [IsROrC π•œ] [TopologicalSpace X]
+variable {X π•œ : Type*} [RCLike π•œ] [TopologicalSpace X]
 
 /-- An auxiliary lemma used in the proof of `ContinuousMap.idealOfSet_ofIdeal_eq_closure` which may
 be useful on its own. -/
@@ -283,7 +283,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
       ext
       simp only [comp_apply, ContinuousMap.coe_coe, coe_mk, algebraMapCLM_toFun, map_pow,
         mul_apply, star_apply, star_def]
-      simp only [normSq_eq_def', IsROrC.conj_mul, ofReal_pow]
+      simp only [normSq_eq_def', RCLike.conj_mul, ofReal_pow]
       rfl
   /- Get the function `g'` which is guaranteed to exist above. By the extreme value theorem and
     compactness of `t`, there is some `0 < c` such that `c ≀ g' x` for all `x ∈ t`. Then by
@@ -327,7 +327,7 @@ theorem setOfIdeal_ofSet_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ s
   exact
     ⟨⟨fun x => g x, continuous_ofReal.comp (map_continuous g)⟩, by
       simpa only [coe_mk, ofReal_eq_zero] using fun x hx => hgs (subset_closure hx), by
-      simpa only [coe_mk, hgx (Set.mem_singleton x), Pi.one_apply, IsROrC.ofReal_one] using
+      simpa only [coe_mk, hgx (Set.mem_singleton x), Pi.one_apply, RCLike.ofReal_one] using
         one_ne_zero⟩
 #align continuous_map.set_of_ideal_of_set_eq_interior ContinuousMap.setOfIdeal_ofSet_eq_interior
 
@@ -391,7 +391,7 @@ theorem ideal_isMaximal_iff (I : Ideal C(X, π•œ)) [hI : IsClosed (I : Set C(X,
         congr_arg (idealOfSet π•œ) hx.symm⟩
 #align continuous_map.ideal_is_maximal_iff ContinuousMap.ideal_isMaximal_iff
 
-end IsROrC
+end RCLike
 
 end ContinuousMap
 
@@ -427,7 +427,7 @@ theorem continuousMapEval_apply_apply (x : X) (f : C(X, π•œ)) : continuousMapEv
 
 end ContinuousMapEval
 
-variable [CompactSpace X] [T2Space X] [IsROrC π•œ]
+variable [CompactSpace X] [T2Space X] [RCLike π•œ]
 
 theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) := by
   refine' ⟨fun x y hxy => _, fun Ο† => _⟩
@@ -436,9 +436,9 @@ theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) := by
         (isClosed_singleton : _root_.IsClosed {y}) (Set.disjoint_singleton.mpr hxy) with
       ⟨f, fx, fy, -⟩
     rw [DFunLike.ne_iff]
-    use (⟨fun (x : ℝ) => (x : π•œ), IsROrC.continuous_ofReal⟩ : C(ℝ, π•œ)).comp f
+    use (⟨fun (x : ℝ) => (x : π•œ), RCLike.continuous_ofReal⟩ : C(ℝ, π•œ)).comp f
     simpa only [continuousMapEval_apply_apply, ContinuousMap.comp_apply, coe_mk, Ne.def,
-      IsROrC.ofReal_inj] using
+      RCLike.ofReal_inj] using
       ((fx (Set.mem_singleton x)).symm β–Έ (fy (Set.mem_singleton y)).symm β–Έ zero_ne_one : f x β‰  f y)
   Β· obtain ⟨x, hx⟩ := (ideal_isMaximal_iff (RingHom.ker Ο†)).mp inferInstance
     refine' ⟨x, CharacterSpace.ext_ker <| Ideal.ext fun f => _⟩
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -79,9 +79,7 @@ open TopologicalSpace
 section TopologicalRing
 
 variable {X R : Type*} [TopologicalSpace X] [Semiring R]
-
 variable [TopologicalSpace R] [TopologicalSemiring R]
-
 variable (R)
 
 /-- Given a topological ring `R` and `s : Set X`, construct the ideal in `C(X, R)` of functions
@@ -408,7 +406,6 @@ variable (X π•œ : Type*) [TopologicalSpace X]
 section ContinuousMapEval
 
 variable [LocallyCompactSpace X] [CommRing π•œ] [TopologicalSpace π•œ] [TopologicalRing π•œ]
-
 variable [Nontrivial π•œ] [NoZeroDivisors π•œ]
 
 /-- The natural continuous map from a locally compact topological space `X` to the
chore: more backporting of simp changes from #10995 (#11001)

Co-authored-by: Patrick Massot <patrickmassot@free.fr> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -214,7 +214,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
   have ht : IsClosed t := isClosed_le continuous_const (map_continuous f).nnnorm
   have htI : Disjoint t (setOfIdeal I)ᢜ := by
     refine' Set.subset_compl_iff_disjoint_left.mp fun x hx => _
-    simpa only [Set.mem_setOf, Set.mem_compl_iff, not_le] using
+    simpa only [t, Set.mem_setOf, Set.mem_compl_iff, not_le] using
       (nnnorm_eq_zero.mpr (mem_idealOfSet.mp hf hx)).trans_lt (half_pos hΞ΅)
   /- It suffices to produce `g : C(X, ℝβ‰₯0)` which takes values in `[0,1]` and is constantly `1` on
     `t` such that when composed with the natural embedding of `ℝβ‰₯0` into `π•œ` lies in the ideal `I`.
chore: remove terminal, terminal refines (#10762)

I replaced a few "terminal" refine/refine's with exact.

The strategy was very simple-minded: essentially any refine whose following line had smaller indentation got replaced by exact and then I cleaned up the mess.

This PR certainly leaves some further terminal refines, but maybe the current change is beneficial.

Diff
@@ -376,7 +376,7 @@ theorem setOfIdeal_eq_compl_singleton (I : Ideal C(X, π•œ)) [hI : I.IsMaximal]
   have h : (idealOfSet π•œ (setOfIdeal I)).IsMaximal :=
     (idealOfSet_ofIdeal_isClosed (inferInstance : IsClosed (I : Set C(X, π•œ)))).symm β–Έ hI
   obtain ⟨x, hx⟩ := Opens.isCoatom_iff.1 ((idealOfSet_isMaximal_iff π•œ (opensOfIdeal I)).1 h)
-  refine ⟨x, congr_arg (fun (s : Opens X) => (s : Set X)) hx⟩
+  exact ⟨x, congr_arg (fun (s : Opens X) => (s : Set X)) hx⟩
 #align continuous_map.set_of_ideal_eq_compl_singleton ContinuousMap.setOfIdeal_eq_compl_singleton
 
 theorem ideal_isMaximal_iff (I : Ideal C(X, π•œ)) [hI : IsClosed (I : Set C(X, π•œ))] :
chore: rename declarations containing nNReal to nnreal (#10372)
Diff
@@ -240,7 +240,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
           _ = β€–algebraMap ℝβ‰₯0 π•œ (1 - g x)β€–β‚Š := by
             simp only [Algebra.algebraMap_eq_smul_one, NNReal.smul_def, ge_iff_le,
               NNReal.coe_sub (hg x), NNReal.coe_one, sub_smul, one_smul]
-          _ ≀ 1 := (nnnorm_algebraMap_nNReal π•œ (1 - g x)).trans_le tsub_le_self
+          _ ≀ 1 := (nnnorm_algebraMap_nnreal π•œ (1 - g x)).trans_le tsub_le_self
       calc
         β€–f x - f x * (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g xβ€–β‚Š =
             β€–f x * (1 - (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š := by
fix: Clm -> CLM, Cle -> CLE (#10018)

Rename

  • Complex.equivRealProdClm β†’ Complex.equivRealProdCLM;
    • TODO: should this one use CLE?
  • Complex.reClm β†’ Complex.reCLM;
  • Complex.imClm β†’ Complex.imCLM;
  • Complex.conjLie β†’ Complex.conjLIE;
  • Complex.conjCle β†’ Complex.conjCLE;
  • Complex.ofRealLi β†’ Complex.ofRealLI;
  • Complex.ofRealClm β†’ Complex.ofRealCLM;
  • fderivInnerClm β†’ fderivInnerCLM;
  • LinearPMap.adjointDomainMkClm β†’ LinearPMap.adjointDomainMkCLM;
  • LinearPMap.adjointDomainMkClmExtend β†’ LinearPMap.adjointDomainMkCLMExtend;
  • IsROrC.reClm β†’ IsROrC.reCLM;
  • IsROrC.imClm β†’ IsROrC.imCLM;
  • IsROrC.conjLie β†’ IsROrC.conjLIE;
  • IsROrC.conjCle β†’ IsROrC.conjCLE;
  • IsROrC.ofRealLi β†’ IsROrC.ofRealLI;
  • IsROrC.ofRealClm β†’ IsROrC.ofRealCLM;
  • MeasureTheory.condexpL1Clm β†’ MeasureTheory.condexpL1CLM;
  • algebraMapClm β†’ algebraMapCLM;
  • WeakDual.CharacterSpace.toClm β†’ WeakDual.CharacterSpace.toCLM;
  • BoundedContinuousFunction.evalClm β†’ BoundedContinuousFunction.evalCLM;
  • ContinuousMap.evalClm β†’ ContinuousMap.evalCLM;
  • TrivSqZeroExt.fstClm β†’ TrivSqZeroExt.fstClm;
  • TrivSqZeroExt.sndClm β†’ TrivSqZeroExt.sndCLM;
  • TrivSqZeroExt.inlClm β†’ TrivSqZeroExt.inlCLM;
  • TrivSqZeroExt.inrClm β†’ TrivSqZeroExt.inrCLM

and related theorems.

Diff
@@ -221,31 +221,31 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
     Indeed, then `β€–f - f * ↑gβ€– ≀ β€–f * (1 - ↑g)β€– ≀ ⨆ β€–f * (1 - ↑g) xβ€–`. When `x βˆ‰ t`, `β€–f xβ€– < Ξ΅ / 2`
     and `β€–(1 - ↑g) xβ€– ≀ 1`, and when `x ∈ t`, `(1 - ↑g) x = 0`, and clearly `f * ↑g ∈ I`. -/
   suffices
-    βˆƒ g : C(X, ℝβ‰₯0), (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g ∈ I ∧ (βˆ€ x, g x ≀ 1) ∧ t.EqOn g 1 by
+    βˆƒ g : C(X, ℝβ‰₯0), (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g ∈ I ∧ (βˆ€ x, g x ≀ 1) ∧ t.EqOn g 1 by
     obtain ⟨g, hgI, hg, hgt⟩ := this
-    refine' ⟨f * (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g, I.mul_mem_left f hgI, _⟩
+    refine' ⟨f * (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g, I.mul_mem_left f hgI, _⟩
     rw [nndist_eq_nnnorm]
     refine' (nnnorm_lt_iff _ hΞ΅).2 fun x => _
     simp only [coe_sub, coe_mul, Pi.sub_apply, Pi.mul_apply]
     by_cases hx : x ∈ t
-    Β· simpa only [hgt hx, comp_apply, Pi.one_apply, ContinuousMap.coe_coe, algebraMapClm_apply,
+    Β· simpa only [hgt hx, comp_apply, Pi.one_apply, ContinuousMap.coe_coe, algebraMapCLM_apply,
         map_one, mul_one, sub_self, nnnorm_zero] using hΞ΅
     Β· refine' lt_of_le_of_lt _ (half_lt_self hΞ΅)
       have :=
         calc
-          β€–((1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) x : π•œ)β€–β‚Š =
+          β€–((1 - (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) x : π•œ)β€–β‚Š =
               β€–1 - algebraMap ℝβ‰₯0 π•œ (g x)β€–β‚Š := by
             simp only [coe_sub, coe_one, coe_comp, ContinuousMap.coe_coe, Pi.sub_apply,
-              Pi.one_apply, Function.comp_apply, algebraMapClm_apply]
+              Pi.one_apply, Function.comp_apply, algebraMapCLM_apply]
           _ = β€–algebraMap ℝβ‰₯0 π•œ (1 - g x)β€–β‚Š := by
             simp only [Algebra.algebraMap_eq_smul_one, NNReal.smul_def, ge_iff_le,
               NNReal.coe_sub (hg x), NNReal.coe_one, sub_smul, one_smul]
           _ ≀ 1 := (nnnorm_algebraMap_nNReal π•œ (1 - g x)).trans_le tsub_le_self
       calc
-        β€–f x - f x * (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g xβ€–β‚Š =
-            β€–f x * (1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š := by
+        β€–f x - f x * (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g xβ€–β‚Š =
+            β€–f x * (1 - (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š := by
           simp only [mul_sub, coe_sub, coe_one, Pi.sub_apply, Pi.one_apply, mul_one]
-        _ ≀ Ξ΅ / 2 * β€–(1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
+        _ ≀ Ξ΅ / 2 * β€–(1 - (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
           ((nnnorm_mul_le _ _).trans
             (mul_le_mul_right' (not_le.mp <| show ¬Ρ / 2 ≀ β€–f xβ€–β‚Š from hx).le _))
         _ ≀ Ξ΅ / 2 := by simpa only [mul_one] using mul_le_mul_left' this _
@@ -255,7 +255,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
     `fβ‚“ x β‰  0` for some `fβ‚“ ∈ I` and so `fun y ↦ β€–(star fβ‚“ * fβ‚“) yβ€–β‚Š` is strictly posiive in a
     neighborhood of `y`. Moreover, `(β€–(star fβ‚“ * fβ‚“) yβ€–β‚Š : π•œ) = (star fβ‚“ * fβ‚“) y`, so composition of
     this map with the natural embedding is just `star fβ‚“ * fβ‚“ ∈ I`. -/
-  have : βˆƒ g' : C(X, ℝβ‰₯0), (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g' ∈ I ∧ βˆ€ x ∈ t, 0 < g' x := by
+  have : βˆƒ g' : C(X, ℝβ‰₯0), (algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g' ∈ I ∧ βˆ€ x ∈ t, 0 < g' x := by
     refine' ht.isCompact.induction_on _ _ _ _
     · refine' ⟨0, _, fun x hx => False.elim hx⟩
       convert I.zero_mem
@@ -283,7 +283,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
             pow_pos (norm_pos_iff.mpr hx.1) 2⟩⟩
       convert I.mul_mem_left (star g) hI
       ext
-      simp only [comp_apply, ContinuousMap.coe_coe, coe_mk, algebraMapClm_toFun, map_pow,
+      simp only [comp_apply, ContinuousMap.coe_coe, coe_mk, algebraMapCLM_toFun, map_pow,
         mul_apply, star_apply, star_def]
       simp only [normSq_eq_def', IsROrC.conj_mul, ofReal_pow]
       rfl
@@ -298,9 +298,9 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
       ⟨g' x, hgt' x hx, hx'⟩
   obtain ⟨g, hg, hgc⟩ := exists_mul_le_one_eqOn_ge g' hc
   refine' ⟨g * g', _, hg, hgc.mono hgc'⟩
-  convert I.mul_mem_left ((algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) hI'
+  convert I.mul_mem_left ((algebraMapCLM ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) hI'
   ext
-  simp only [algebraMapClm_coe, comp_apply, mul_apply, ContinuousMap.coe_coe, map_mul]
+  simp only [algebraMapCLM_coe, comp_apply, mul_apply, ContinuousMap.coe_coe, map_mul]
 #align continuous_map.ideal_of_set_of_ideal_eq_closure ContinuousMap.idealOfSet_ofIdeal_eq_closure
 
 theorem idealOfSet_ofIdeal_isClosed {I : Ideal C(X, π•œ)} (hI : IsClosed (I : Set C(X, π•œ))) :
chore(*): rename FunLike to DFunLike (#9785)

This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.

This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:

sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean     
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -149,7 +149,7 @@ theorem setOfTop_eq_univ [Nontrivial R] : setOfIdeal (⊀ : Ideal C(X, R)) = Set
 theorem idealOfEmpty_eq_bot : idealOfSet R (βˆ… : Set X) = βŠ₯ :=
   Ideal.ext fun f => by
     simp only [mem_idealOfSet, Set.compl_empty, Set.mem_univ, forall_true_left, Ideal.mem_bot,
-      FunLike.ext_iff, zero_apply]
+      DFunLike.ext_iff, zero_apply]
 #align continuous_map.ideal_of_empty_eq_bot ContinuousMap.idealOfEmpty_eq_bot
 
 @[simp]
@@ -438,7 +438,7 @@ theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) := by
     rcases exists_continuous_zero_one_of_isClosed (isClosed_singleton : _root_.IsClosed {x})
         (isClosed_singleton : _root_.IsClosed {y}) (Set.disjoint_singleton.mpr hxy) with
       ⟨f, fx, fy, -⟩
-    rw [FunLike.ne_iff]
+    rw [DFunLike.ne_iff]
     use (⟨fun (x : ℝ) => (x : π•œ), IsROrC.continuous_ofReal⟩ : C(ℝ, π•œ)).comp f
     simpa only [continuousMapEval_apply_apply, ContinuousMap.comp_apply, coe_mk, Ne.def,
       IsROrC.ofReal_inj] using
chore(*): use βˆƒ x ∈ s, _ instead of βˆƒ (x) (_ : x ∈ s), _ (#9184)

Search for [βˆ€βˆƒ].*(_ and manually replace some occurrences with more readable versions. In case of βˆ€, the new expressions are defeq to the old ones. In case of βˆƒ, they differ by exists_prop.

In some rare cases, golf proofs that needed fixing.

Diff
@@ -291,7 +291,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
     compactness of `t`, there is some `0 < c` such that `c ≀ g' x` for all `x ∈ t`. Then by
     `exists_mul_le_one_eqOn_ge` there is some `g` for which `g * g'` is the desired function. -/
   obtain ⟨g', hI', hgt'⟩ := this
-  obtain ⟨c, hc, hgc'⟩ : βˆƒ (c : _) (_ : 0 < c), βˆ€ y : X, y ∈ t β†’ c ≀ g' y :=
+  obtain ⟨c, hc, hgc'⟩ : βˆƒ c > 0, βˆ€ y : X, y ∈ t β†’ c ≀ g' y :=
     t.eq_empty_or_nonempty.elim
       (fun ht' => ⟨1, zero_lt_one, fun y hy => False.elim (by rwa [ht'] at hy)⟩) fun ht' =>
       let ⟨x, hx, hx'⟩ := ht.isCompact.exists_forall_le ht' (map_continuous g').continuousOn
chore: rename some lemmas involving "of_closed" (#8492)

Three particular examples which caught my eye; not exhaustive.

Diff
@@ -324,7 +324,7 @@ theorem setOfIdeal_ofSet_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ s
   /- Apply Urysohn's lemma to get `g : C(X, ℝ)` which is zero on `sᢜ` and `g x β‰  0`, then compose
     with the natural embedding `ℝ β†ͺ π•œ` to produce the desired `f`. -/
   obtain ⟨g, hgs, hgx : Set.EqOn g 1 {x}, -⟩ :=
-    exists_continuous_zero_one_of_closed isClosed_closure isClosed_singleton
+    exists_continuous_zero_one_of_isClosed isClosed_closure isClosed_singleton
       (Set.disjoint_singleton_right.mpr hx)
   exact
     ⟨⟨fun x => g x, continuous_ofReal.comp (map_continuous g)⟩, by
@@ -435,7 +435,7 @@ variable [CompactSpace X] [T2Space X] [IsROrC π•œ]
 theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) := by
   refine' ⟨fun x y hxy => _, fun Ο† => _⟩
   Β· contrapose! hxy
-    rcases exists_continuous_zero_one_of_closed (isClosed_singleton : _root_.IsClosed {x})
+    rcases exists_continuous_zero_one_of_isClosed (isClosed_singleton : _root_.IsClosed {x})
         (isClosed_singleton : _root_.IsClosed {y}) (Set.disjoint_singleton.mpr hxy) with
       ⟨f, fx, fy, -⟩
     rw [FunLike.ne_iff]
style: cleanup by putting by on the same line as := (#8407)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -243,8 +243,8 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
           _ ≀ 1 := (nnnorm_algebraMap_nNReal π•œ (1 - g x)).trans_le tsub_le_self
       calc
         β€–f x - f x * (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g xβ€–β‚Š =
-            β€–f x * (1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
-          by simp only [mul_sub, coe_sub, coe_one, Pi.sub_apply, Pi.one_apply, mul_one]
+            β€–f x * (1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š := by
+          simp only [mul_sub, coe_sub, coe_one, Pi.sub_apply, Pi.one_apply, mul_one]
         _ ≀ Ξ΅ / 2 * β€–(1 - (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) xβ€–β‚Š :=
           ((nnnorm_mul_le _ _).trans
             (mul_le_mul_right' (not_le.mp <| show ¬Ρ / 2 ≀ β€–f xβ€–β‚Š from hx).le _))
chore: cleanup some spaces (#7484)

Purely cosmetic PR.

Diff
@@ -293,7 +293,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
   obtain ⟨g', hI', hgt'⟩ := this
   obtain ⟨c, hc, hgc'⟩ : βˆƒ (c : _) (_ : 0 < c), βˆ€ y : X, y ∈ t β†’ c ≀ g' y :=
     t.eq_empty_or_nonempty.elim
-      (fun ht' => ⟨1, zero_lt_one, fun y hy => False.elim (by rwa [ht'] at hy )⟩) fun ht' =>
+      (fun ht' => ⟨1, zero_lt_one, fun y hy => False.elim (by rwa [ht'] at hy)⟩) fun ht' =>
       let ⟨x, hx, hx'⟩ := ht.isCompact.exists_forall_le ht' (map_continuous g').continuousOn
       ⟨g' x, hgt' x hx, hx'⟩
   obtain ⟨g, hg, hgc⟩ := exists_mul_le_one_eqOn_ge g' hc
refactor: split NormalSpace into NormalSpace and T4Space (#7072)
  • Rename NormalSpace to T4Space.
  • Add NormalSpace, a version without the T1Space assumption.
  • Adjust some theorems.
  • Supersedes thus closes #6892.
  • Add some instance cycles, see #2030
Diff
@@ -321,7 +321,6 @@ theorem setOfIdeal_ofSet_eq_interior (s : Set X) : setOfIdeal (idealOfSet π•œ s
   -- If `x βˆ‰ closure sᢜ`, we must produce `f : C(X, π•œ)` which is zero on `sᢜ` and `f x β‰  0`.
   rw [← compl_compl (interior s), ← closure_compl] at hx
   simp_rw [mem_setOfIdeal, mem_idealOfSet]
-  haveI : NormalSpace X := normalOfCompactT2
   /- Apply Urysohn's lemma to get `g : C(X, ℝ)` which is zero on `sᢜ` and `g x β‰  0`, then compose
     with the natural embedding `ℝ β†ͺ π•œ` to produce the desired `f`. -/
   obtain ⟨g, hgs, hgx : Set.EqOn g 1 {x}, -⟩ :=
@@ -436,7 +435,6 @@ variable [CompactSpace X] [T2Space X] [IsROrC π•œ]
 theorem continuousMapEval_bijective : Bijective (continuousMapEval X π•œ) := by
   refine' ⟨fun x y hxy => _, fun Ο† => _⟩
   Β· contrapose! hxy
-    haveI := @normalOfCompactT2 X _ _ _
     rcases exists_continuous_zero_one_of_closed (isClosed_singleton : _root_.IsClosed {x})
         (isClosed_singleton : _root_.IsClosed {y}) (Set.disjoint_singleton.mpr hxy) with
       ⟨f, fx, fy, -⟩
chore: drop MulZeroClass. in mul_zero/zero_mul (#6682)

Search&replace MulZeroClass.mul_zero -> mul_zero, MulZeroClass.zero_mul -> zero_mul.

These were introduced by Mathport, as the full name of mul_zero is actually MulZeroClass.mul_zero (it's exported with the short name).

Diff
@@ -90,7 +90,7 @@ def idealOfSet (s : Set X) : Ideal C(X, R) where
   carrier := {f : C(X, R) | βˆ€ x ∈ sᢜ, f x = 0}
   add_mem' {f g} hf hg x hx := by simp [hf x hx, hg x hx, coe_add, Pi.add_apply, add_zero]
   zero_mem' _ _ := rfl
-  smul_mem' c f hf x hx := MulZeroClass.mul_zero (c x) β–Έ congr_arg (fun y => c x * y) (hf x hx)
+  smul_mem' c f hf x hx := mul_zero (c x) β–Έ congr_arg (fun y => c x * y) (hf x hx)
 #align continuous_map.ideal_of_set ContinuousMap.idealOfSet
 
 theorem idealOfSet_closed [T2Space R] (s : Set X) :
chore: remove unused simps (#6632)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -108,7 +108,7 @@ theorem mem_idealOfSet {s : Set X} {f : C(X, R)} :
 #align continuous_map.mem_ideal_of_set ContinuousMap.mem_idealOfSet
 
 theorem not_mem_idealOfSet {s : Set X} {f : C(X, R)} : f βˆ‰ idealOfSet R s ↔ βˆƒ x ∈ sᢜ, f x β‰  0 := by
-  simp_rw [mem_idealOfSet, exists_prop]; push_neg; rfl
+  simp_rw [mem_idealOfSet]; push_neg; rfl
 #align continuous_map.not_mem_ideal_of_set ContinuousMap.not_mem_idealOfSet
 
 /-- Given an ideal `I` of `C(X, R)`, construct the set of points for which every function in the
@@ -124,7 +124,7 @@ theorem not_mem_setOfIdeal {I : Ideal C(X, R)} {x : X} :
 
 theorem mem_setOfIdeal {I : Ideal C(X, R)} {x : X} :
     x ∈ setOfIdeal I ↔ βˆƒ f ∈ I, (f : C(X, R)) x β‰  0 := by
-  simp_rw [setOfIdeal, Set.mem_compl_iff, Set.mem_setOf, exists_prop]; push_neg; rfl
+  simp_rw [setOfIdeal, Set.mem_compl_iff, Set.mem_setOf]; push_neg; rfl
 #align continuous_map.mem_set_of_ideal ContinuousMap.mem_setOfIdeal
 
 theorem setOfIdeal_open [T2Space R] (I : Ideal C(X, R)) : IsOpen (setOfIdeal I) := by
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -78,7 +78,7 @@ open TopologicalSpace
 
 section TopologicalRing
 
-variable {X R : Type _} [TopologicalSpace X] [Semiring R]
+variable {X R : Type*} [TopologicalSpace X] [Semiring R]
 
 variable [TopologicalSpace R] [TopologicalSemiring R]
 
@@ -176,7 +176,7 @@ section IsROrC
 
 open IsROrC
 
-variable {X π•œ : Type _} [IsROrC π•œ] [TopologicalSpace X]
+variable {X π•œ : Type*} [IsROrC π•œ] [TopologicalSpace X]
 
 /-- An auxiliary lemma used in the proof of `ContinuousMap.idealOfSet_ofIdeal_eq_closure` which may
 be useful on its own. -/
@@ -404,7 +404,7 @@ namespace CharacterSpace
 
 open Function ContinuousMap
 
-variable (X π•œ : Type _) [TopologicalSpace X]
+variable (X π•œ : Type*) [TopologicalSpace X]
 
 section ContinuousMapEval
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2022 Jireh Loreaux. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
-
-! This file was ported from Lean 3 source module topology.continuous_function.ideals
-! leanprover-community/mathlib commit c2258f7bf086b17eac0929d635403780c39e239f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Topology.Algebra.Algebra
 import Mathlib.Topology.ContinuousFunction.Compact
@@ -15,6 +10,8 @@ import Mathlib.Data.IsROrC.Basic
 import Mathlib.Analysis.NormedSpace.Units
 import Mathlib.Topology.Algebra.Module.CharacterSpace
 
+#align_import topology.continuous_function.ideals from "leanprover-community/mathlib"@"c2258f7bf086b17eac0929d635403780c39e239f"
+
 /-!
 # Ideals of continuous functions
 
feat: generalize&merge ContinuousMap.continuous_eval_const{,'} (#5649)

We had continuity of fun f : C(X, Y) ↦ f a in two cases:

  • X is a locally compact space;
  • X is a compact space and Y is a metric space.

In fact, it is true in general topological spaces.

Diff
@@ -96,11 +96,11 @@ def idealOfSet (s : Set X) : Ideal C(X, R) where
   smul_mem' c f hf x hx := MulZeroClass.mul_zero (c x) β–Έ congr_arg (fun y => c x * y) (hf x hx)
 #align continuous_map.ideal_of_set ContinuousMap.idealOfSet
 
-theorem idealOfSet_closed [LocallyCompactSpace X] [T2Space R] (s : Set X) :
+theorem idealOfSet_closed [T2Space R] (s : Set X) :
     IsClosed (idealOfSet R s : Set C(X, R)) := by
   simp only [idealOfSet, Submodule.coe_set_mk, Set.setOf_forall]
   exact isClosed_iInter fun x => isClosed_iInter fun _ =>
-    isClosed_eq (continuous_eval_const' x) continuous_const
+    isClosed_eq (continuous_eval_const x) continuous_const
 #align continuous_map.ideal_of_set_closed ContinuousMap.idealOfSet_closed
 
 variable {R}
@@ -422,7 +422,7 @@ def continuousMapEval : C(X, characterSpace π•œ C(X, π•œ)) where
     ⟨{  toFun := fun f => f x
         map_add' := fun f g => rfl
         map_smul' := fun z f => rfl
-        cont := continuous_eval_const' x }, by
+        cont := continuous_eval_const x }, by
         rw [CharacterSpace.eq_set_map_one_map_mul]; exact ⟨rfl, fun f g => rfl⟩⟩
   continuous_toFun := Continuous.subtype_mk (continuous_of_continuous_eval map_continuous) _
 #align weak_dual.character_space.continuous_map_eval WeakDual.CharacterSpace.continuousMapEval
fix: change compl precedence (#5586)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -215,7 +215,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
   -- Let `t := {x : X | Ξ΅ / 2 ≀ β€–f xβ€–β‚Š}}` which is closed and disjoint from `set_of_ideal I`.
   set t := {x : X | Ξ΅ / 2 ≀ β€–f xβ€–β‚Š}
   have ht : IsClosed t := isClosed_le continuous_const (map_continuous f).nnnorm
-  have htI : Disjoint t (setOfIdeal Iᢜ) := by
+  have htI : Disjoint t (setOfIdeal I)ᢜ := by
     refine' Set.subset_compl_iff_disjoint_left.mp fun x hx => _
     simpa only [Set.mem_setOf, Set.mem_compl_iff, not_le] using
       (nnnorm_eq_zero.mpr (mem_idealOfSet.mp hf hx)).trans_lt (half_pos hΞ΅)
@@ -384,7 +384,7 @@ theorem setOfIdeal_eq_compl_singleton (I : Ideal C(X, π•œ)) [hI : I.IsMaximal]
 #align continuous_map.set_of_ideal_eq_compl_singleton ContinuousMap.setOfIdeal_eq_compl_singleton
 
 theorem ideal_isMaximal_iff (I : Ideal C(X, π•œ)) [hI : IsClosed (I : Set C(X, π•œ))] :
-    I.IsMaximal ↔ βˆƒ x : X, idealOfSet π•œ ({x}ᢜ) = I := by
+    I.IsMaximal ↔ βˆƒ x : X, idealOfSet π•œ {x}ᢜ = I := by
   refine'
     ⟨_, fun h =>
       let ⟨x, hx⟩ := h
feat: port Geometry.Manifold.ContMdiffMap (#5436)
Diff
@@ -263,7 +263,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
     · refine' ⟨0, _, fun x hx => False.elim hx⟩
       convert I.zero_mem
       ext
-      simp only [comp_apply, zero_apply, coe_mk, map_zero]
+      simp only [comp_apply, zero_apply, ContinuousMap.coe_coe, map_zero]
     Β· rintro s₁ sβ‚‚ hs ⟨g, hI, hgt⟩; exact ⟨g, hI, fun x hx => hgt x (hs hx)⟩
     Β· rintro s₁ sβ‚‚ ⟨g₁, hI₁, hgtβ‚βŸ© ⟨gβ‚‚, hIβ‚‚, hgtβ‚‚βŸ©
       refine' ⟨g₁ + gβ‚‚, _, fun x hx => _⟩
@@ -286,7 +286,8 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
             pow_pos (norm_pos_iff.mpr hx.1) 2⟩⟩
       convert I.mul_mem_left (star g) hI
       ext
-      simp only [comp_apply, coe_mk, algebraMapClm_toFun, map_pow, mul_apply, star_apply, star_def]
+      simp only [comp_apply, ContinuousMap.coe_coe, coe_mk, algebraMapClm_toFun, map_pow,
+        mul_apply, star_apply, star_def]
       simp only [normSq_eq_def', IsROrC.conj_mul, ofReal_pow]
       rfl
   /- Get the function `g'` which is guaranteed to exist above. By the extreme value theorem and
@@ -302,7 +303,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
   refine' ⟨g * g', _, hg, hgc.mono hgc'⟩
   convert I.mul_mem_left ((algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g) hI'
   ext
-  simp only [algebraMapClm_coe, comp_apply, mul_apply, coe_mk, map_mul]
+  simp only [algebraMapClm_coe, comp_apply, mul_apply, ContinuousMap.coe_coe, map_mul]
 #align continuous_map.ideal_of_set_of_ideal_eq_closure ContinuousMap.idealOfSet_ofIdeal_eq_closure
 
 theorem idealOfSet_ofIdeal_isClosed {I : Ideal C(X, π•œ)} (hI : IsClosed (I : Set C(X, π•œ))) :
chore: tidy various files (#5104)
Diff
@@ -91,7 +91,7 @@ variable (R)
 which vanish on the complement of `s`. -/
 def idealOfSet (s : Set X) : Ideal C(X, R) where
   carrier := {f : C(X, R) | βˆ€ x ∈ sᢜ, f x = 0}
-  add_mem' := @fun f g hf hg x hx => by simp [hf x hx, hg x hx, coe_add, Pi.add_apply, add_zero]
+  add_mem' {f g} hf hg x hx := by simp [hf x hx, hg x hx, coe_add, Pi.add_apply, add_zero]
   zero_mem' _ _ := rfl
   smul_mem' c f hf x hx := MulZeroClass.mul_zero (c x) β–Έ congr_arg (fun y => c x * y) (hf x hx)
 #align continuous_map.ideal_of_set ContinuousMap.idealOfSet
@@ -342,7 +342,7 @@ theorem setOfIdeal_ofSet_of_isOpen {s : Set X} (hs : IsOpen s) : setOfIdeal (ide
 
 variable (X)
 
-/-- The Galois insertion `ContinuousMap.opensOfIdeal : Ideal C(X, π•œ) β†’ opens X` and
+/-- The Galois insertion `ContinuousMap.opensOfIdeal : Ideal C(X, π•œ) β†’ Opens X` and
 `fun s ↦ ContinuousMap.idealOfSet ↑s`. -/
 @[simps]
 def idealOpensGI : GaloisInsertion (opensOfIdeal : Ideal C(X, π•œ) β†’ Opens X) fun s => idealOfSet π•œ s
@@ -365,7 +365,6 @@ theorem idealOfSet_isMaximal_iff (s : Opens X) :
   rw [Ideal.isMaximal_def]
   refine' (idealOpensGI X π•œ).isCoatom_iff (fun I hI => _) s
   rw [← Ideal.isMaximal_def] at hI
-  skip
   exact idealOfSet_ofIdeal_isClosed inferInstance
 #align continuous_map.ideal_of_set_is_maximal_iff ContinuousMap.idealOfSet_isMaximal_iff
 
chore: convert lambda in docs to fun (#5045)

Found with git grep -n "Ξ» [a-zA-Z_ ]*,"

Diff
@@ -45,7 +45,7 @@ herein called `WeakDual.CharacterSpace.homeoEval`.
 * `ContinuousMap.setOfIdeal`: complement of the set on which all functions in the ideal vanish.
 * `ContinuousMap.opensOfIdeal`: `ContinuousMap.setOfIdeal` as a term of `opens X`.
 * `ContinuousMap.idealOpensGI`: The Galois insertion `ContinuousMap.opensOfIdeal` and
-  `Ξ» s, ContinuousMap.idealOfSet ↑s`.
+  `fun s ↦ ContinuousMap.idealOfSet ↑s`.
 * `WeakDual.CharacterSpace.continuousMapEval`: the natural continuous map from a locally compact
   topological space `X` to the `WeakDual.characterSpace π•œ C(X, π•œ)` which sends `x : X` to point
   evaluation at `x`, with modest hypothesis on `π•œ`.
@@ -255,7 +255,7 @@ theorem idealOfSet_ofIdeal_eq_closure (I : Ideal C(X, π•œ)) :
   /- There is some `g' : C(X, ℝβ‰₯0)` which is strictly positive on `t` such that the composition
     `↑g` with the natural embedding of `ℝβ‰₯0` into `π•œ` lies in `I`. This follows from compactness of
     `t` and that we can do it in any neighborhood of a point `x ∈ t`. Indeed, since `x ∈ t`, then
-    `fβ‚“ x β‰  0` for some `fβ‚“ ∈ I` and so `Ξ» y, β€–(star fβ‚“ * fβ‚“) yβ€–β‚Š` is strictly posiive in a
+    `fβ‚“ x β‰  0` for some `fβ‚“ ∈ I` and so `fun y ↦ β€–(star fβ‚“ * fβ‚“) yβ€–β‚Š` is strictly posiive in a
     neighborhood of `y`. Moreover, `(β€–(star fβ‚“ * fβ‚“) yβ€–β‚Š : π•œ) = (star fβ‚“ * fβ‚“) y`, so composition of
     this map with the natural embedding is just `star fβ‚“ * fβ‚“ ∈ I`. -/
   have : βˆƒ g' : C(X, ℝβ‰₯0), (algebraMapClm ℝβ‰₯0 π•œ : C(ℝβ‰₯0, π•œ)).comp g' ∈ I ∧ βˆ€ x ∈ t, 0 < g' x := by
@@ -343,7 +343,7 @@ theorem setOfIdeal_ofSet_of_isOpen {s : Set X} (hs : IsOpen s) : setOfIdeal (ide
 variable (X)
 
 /-- The Galois insertion `ContinuousMap.opensOfIdeal : Ideal C(X, π•œ) β†’ opens X` and
-`Ξ» s, ContinuousMap.idealOfSet ↑s`. -/
+`fun s ↦ ContinuousMap.idealOfSet ↑s`. -/
 @[simps]
 def idealOpensGI : GaloisInsertion (opensOfIdeal : Ideal C(X, π•œ) β†’ Opens X) fun s => idealOfSet π•œ s
     where
feat: port Topology.ContinuousFunction.Ideals (#4852)

Co-authored-by: Moritz Firsching <firsching@google.com> Co-authored-by: Jireh Loreaux <loreaujy@gmail.com>

Dependencies 10 + 703

704 files ported (98.6%)
306199 lines ported (98.3%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file