@@ -402,6 +402,66 @@ lemma topological_group.t2_space [t1_space α] : t2_space α := regular_space.t2
402
402
403
403
end
404
404
405
+ section
406
+
407
+ /-! Some results about an open set containing the product of two sets in a topological group. -/
408
+
409
+ variables [topological_space α] [group α] [topological_group α]
410
+ /-- Given a open neighborhood `U` of `1` there is a open neighborhood `V` of `1`
411
+ such that `VV ⊆ U`. -/
412
+ @[to_additive " Given a open neighborhood `U` of `0` there is a open neighborhood `V` of `0`
413
+ such that `V + V ⊆ U`." ]
414
+ lemma one_open_separated_mul {U : set α} (h1U : is_open U) (h2U : (1 : α) ∈ U) :
415
+ ∃ V : set α, is_open V ∧ (1 : α) ∈ V ∧ V * V ⊆ U :=
416
+ begin
417
+ rcases exists_nhds_square (continuous_mul U h1U) (by simp only [mem_preimage, one_mul, h2U] :
418
+ ((1 : α), (1 : α)) ∈ (λ p : α × α, p.1 * p.2 ) ⁻¹' U) with ⟨V, h1V, h2V, h3V⟩,
419
+ refine ⟨V, h1V, h2V, _⟩,
420
+ rwa [← image_subset_iff, image_mul_prod] at h3V
421
+ end
422
+
423
+ /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
424
+ such that `KV ⊆ U`. -/
425
+ @[to_additive " Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `0`
426
+ such that `K + V ⊆ U`." ]
427
+ lemma compact_open_separated_mul {K U : set α} (hK : compact K) (hU : is_open U) (hKU : K ⊆ U) :
428
+ ∃ V : set α, is_open V ∧ (1 : α) ∈ V ∧ K * V ⊆ U :=
429
+ begin
430
+ let W : α → set α := λ x, (λ y, x * y) ⁻¹' U,
431
+ have h1W : ∀ x, is_open (W x) := λ x, continuous_mul_left x U hU,
432
+ have h2W : ∀ x ∈ K, (1 : α) ∈ W x := λ x hx, by simp only [mem_preimage, mul_one, hKU hx],
433
+ choose V hV using λ x : K, one_open_separated_mul (h1W x) (h2W x.1 x.2 ),
434
+ let X : K → set α := λ x, (λ y, (x : α)⁻¹ * y) ⁻¹' (V x),
435
+ cases hK.elim_finite_subcover X (λ x, continuous_mul_left x⁻¹ (V x) (hV x).1 ) _ with t ht, swap,
436
+ { intros x hx, rw [mem_Union], use ⟨x, hx⟩, rw [mem_preimage], convert (hV _).2 .1 ,
437
+ simp only [mul_left_inv, subtype.coe_mk] },
438
+ refine ⟨⋂ x ∈ t, V x, is_open_bInter (finite_mem_finset _) (λ x hx, (hV x).1 ), _, _⟩,
439
+ { simp only [mem_Inter], intros x hx, exact (hV x).2 .1 },
440
+ rintro _ ⟨x, y, hx, hy, rfl⟩, simp only [mem_Inter] at hy,
441
+ have := ht hx, simp only [mem_Union, mem_preimage] at this , rcases this with ⟨z, h1z, h2z⟩,
442
+ have : (z : α)⁻¹ * x * y ∈ W z := (hV z).2 .2 (mul_mem_mul h2z (hy z h1z)),
443
+ rw [mem_preimage] at this , convert this using 1 , simp only [mul_assoc, mul_inv_cancel_left]
444
+ end
445
+
446
+ /-- A compact set is covered by finitely many left multiplicative translates of a set
447
+ with non-empty interior. -/
448
+ @[to_additive " A compact set is covered by finitely many left additive translates of a set
449
+ with non-empty interior." ]
450
+ lemma compact_covered_by_mul_left_translates {K V : set α} (hK : compact K)
451
+ (hV : (interior V).nonempty) : ∃ t : finset α, K ⊆ ⋃ g ∈ t, (λ h, g * h) ⁻¹' V :=
452
+ begin
453
+ cases hV with g₀ hg₀,
454
+ rcases compact.elim_finite_subcover hK (λ x : α, interior $ (λ h, x * h) ⁻¹' V) _ _ with ⟨t, ht⟩,
455
+ { refine ⟨t, subset.trans ht _⟩,
456
+ apply Union_subset_Union, intro g, apply Union_subset_Union, intro hg, apply interior_subset },
457
+ { intro g, apply is_open_interior },
458
+ { intros g hg, rw [mem_Union], use g₀ * g⁻¹,
459
+ apply preimage_interior_subset_interior_preimage, exact continuous_const.mul continuous_id,
460
+ rwa [mem_preimage, inv_mul_cancel_right] }
461
+ end
462
+
463
+ end
464
+
405
465
section
406
466
variables [topological_space α] [comm_group α] [topological_group α]
407
467
0 commit comments