Skip to content

Commit 66875d6

Browse files
committed
feat(Analysis/Convex/Basic): two useful lemmas on pointwise operations (leanprover-community#38598)
In proofs about locally convex spaces, it's common to need that `(1/2) * s + (1/2) * s = s` for convex `s` and that `closure s <= s + s` when `s` is open and contains `0`. We add these lemmas, which will be used ultimately in a proof of Michael's selection theorem. Co-authored-by: Kevin H Wilson <khwilson@gmail.com>
1 parent 0a0340a commit 66875d6

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

Mathlib/Analysis/Convex/Basic.lean

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,11 @@ protected theorem Convex.add_smul (h_conv : Convex 𝕜 s) {p q : 𝕜} (hp : 0
570570
rintro _ ⟨_, ⟨v₁, h₁, rfl⟩, _, ⟨v₂, h₂, rfl⟩, rfl⟩
571571
exact h_conv.exists_mem_add_smul_eq h₁ h₂ hp hq
572572

573+
theorem Convex.add_half_self_eq_self (h_conv : Convex 𝕜 s) : (2 : 𝕜)⁻¹ • s + (2 : 𝕜)⁻¹ • s = s := by
574+
rw [← h_conv.add_smul (by norm_num) (by norm_num)]
575+
ring_nf
576+
rw [one_smul]
577+
573578
end AddCommGroup
574579

575580
end LinearOrderedField

Mathlib/Topology/Algebra/Group/Pointwise.lean

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ with continuous addition/multiplication. See also `Submonoid.top_closure_mul_sel
3030
`Topology.Algebra.Monoid`.
3131
-/
3232

33-
3433
section ContinuousConstSMul
3534

3635
variable [TopologicalSpace β] [Group α] [MulAction α β] [ContinuousConstSMul α β] {s : Set α}
@@ -253,6 +252,16 @@ lemma IsOpen.mul_closure_one_eq {U : Set G} (hU : IsOpen U) :
253252
U * (closure {1} : Set G) = U :=
254253
compl_mul_closure_one_eq_iff.1 (hU.isClosed_compl.mul_closure_one_eq)
255254

255+
@[to_additive]
256+
theorem closure_subset_mul_self_of_mem_nhds_one {U : Set G} (hU : U ∈ 𝓝 1) :
257+
closure U ⊆ U * U := by
258+
intro x hx
259+
rw [mem_closure_iff_nhds] at hx
260+
have hkey : (fun y => x / y) ⁻¹' U ∈ 𝓝 x :=
261+
ContinuousAt.preimage_mem_nhds (by fun_prop) (by simpa)
262+
obtain ⟨a, ha_mem, ha_s⟩ := hx _ hkey
263+
exact Set.mem_mul.mpr ⟨x / a, ha_mem, a, ha_s, div_mul_cancel x a⟩
264+
256265
end IsTopologicalGroup
257266

258267
section FilterMul

0 commit comments

Comments
 (0)