Skip to content

Commit 8fdb5c2

Browse files
committed
Merge branch 'master' into angle_incenter_unoriented
2 parents 4328d75 + dcce3be commit 8fdb5c2

File tree

3 files changed

+86
-0
lines changed

3 files changed

+86
-0
lines changed

Mathlib/Topology/Algebra/MulAction.lean

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module
77

88
public import Mathlib.Algebra.AddTorsor.Defs
99
public import Mathlib.GroupTheory.GroupAction.SubMulAction
10+
public import Mathlib.Order.Filter.Pointwise
1011
public import Mathlib.Topology.Algebra.Constructions
1112
public import Mathlib.Topology.Algebra.ConstMulAction
1213
public import Mathlib.Topology.Connected.Basic
@@ -230,6 +231,28 @@ lemma stabilizer_isOpen [DiscreteTopology X] (x : X) : IsOpen (MulAction.stabili
230231

231232
end Group
232233

234+
section GroupWithZero
235+
236+
variable {G₀ X : Type*} [GroupWithZero G₀] [Zero X] [MulActionWithZero G₀ X]
237+
[TopologicalSpace G₀] [(𝓝[≠] (0 : G₀)).NeBot] [TopologicalSpace X] [ContinuousSMul G₀ X]
238+
239+
theorem Set.univ_smul_nhds_zero {s : Set X} (hs : s ∈ 𝓝 0) : (univ : Set G₀) • s = Set.univ := by
240+
refine Set.eq_univ_of_forall fun x ↦ ?_
241+
have : Tendsto (· • x) (𝓝 (0 : G₀)) (𝓝 0) :=
242+
zero_smul G₀ x ▸ tendsto_id.smul tendsto_const_nhds
243+
rcases Filter.nonempty_of_mem (inter_mem_nhdsWithin {0}ᶜ <| mem_map.1 <| this hs)
244+
with ⟨c, hc₀, hc⟩
245+
refine ⟨c⁻¹, trivial, c • x, hc, ?_⟩
246+
simp_all
247+
248+
@[simp]
249+
theorem Filter.top_smul_nhds_zero : (⊤ : Filter G₀) • 𝓝 (0 : X) = ⊤ := by
250+
rw [(hasBasis_top.smul (basis_sets _)).eq_top_iff]
251+
rintro ⟨_, s⟩ ⟨-, hs⟩
252+
exact Set.univ_smul_nhds_zero hs
253+
254+
end GroupWithZero
255+
233256
@[to_additive]
234257
instance Prod.continuousSMul [SMul M X] [SMul M Y] [ContinuousSMul M X] [ContinuousSMul M Y] :
235258
ContinuousSMul M (X × Y) :=

Mathlib/Topology/MetricSpace/Congruence.lean

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Authors: Jovan Gerbscheid, Newell Jensen
66
module
77

88
public import Mathlib.Topology.MetricSpace.Pseudo.Defs
9+
public import Mathlib.Topology.MetricSpace.Isometry
910

1011
/-!
1112
# Congruences
@@ -96,6 +97,20 @@ lemma index_map (h : v₁ ≅ v₂) (f : ι' → ι) : (v₁ ∘ f) ≅ (v₂
9697
simpa [(EquivLike.toEquiv f).right_inv i₁, (EquivLike.toEquiv f).right_inv i₂]
9798
using edist_eq h ((EquivLike.toEquiv f).symm i₁) ((EquivLike.toEquiv f).symm i₂)
9899

100+
lemma comp_left {f : P₁ → P₃} (hf : Isometry f) (h : v₁ ≅ v₂) : f ∘ v₁ ≅ v₂ :=
101+
.trans (fun _ _ ↦ hf _ _) h
102+
103+
lemma comp_right {f : P₂ → P₃} (hf : Isometry f) (h : v₁ ≅ v₂) : v₁ ≅ f ∘ v₂ :=
104+
.trans h (.symm <| fun _ _ ↦ hf _ _)
105+
106+
@[simp]
107+
lemma comp_left_iff {f : P₁ → P₃} (hf : Isometry f) : f ∘ v₁ ≅ v₂ ↔ v₁ ≅ v₂ :=
108+
⟨.trans <| .comp_right hf (.refl _), .comp_left hf⟩
109+
110+
@[simp]
111+
lemma comp_right_iff {f : P₂ → P₃} (hf : Isometry f) : v₁ ≅ f ∘ v₂ ↔ v₁ ≅ v₂ := by
112+
rw [congruent_comm, comp_left_iff hf, congruent_comm]
113+
99114
end Congruent
100115

101116
end PseudoEMetricSpace

Mathlib/Topology/MetricSpace/Similarity.lean

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Authors: Jovan Gerbscheid, Newell Jensen
66
module
77

88
public import Mathlib.Topology.MetricSpace.Congruence
9+
public import Mathlib.Topology.MetricSpace.Dilation
910
public import Mathlib.Tactic.FinCases
1011

1112
/-!
@@ -113,6 +114,53 @@ lemma index_equiv (f : ι' ≃ ι) (v₁ : ι → P₁) (v₂ : ι → P₂) :
113114
refine ⟨r, hr, fun i₁ i₂ => ?_⟩
114115
simpa [f.right_inv i₁, f.right_inv i₂] using h (f.symm i₁) (f.symm i₂)
115116

117+
/-! Similarity is preserved under dilations. -/
118+
119+
section Dilation
120+
variable {F}
121+
122+
lemma comp_left [FunLike F P₁ P₃] [DilationClass F P₁ P₃] (f : F) (h : v₁ ∼ v₂) :
123+
f ∘ v₁ ∼ v₂ :=
124+
.trans ⟨Dilation.ratio f, Dilation.ratio_ne_zero f, fun _ _ => Dilation.edist_eq f _ _⟩ h
125+
126+
lemma comp_right [FunLike F P₂ P₃] [DilationClass F P₂ P₃] (f : F) (h : v₁ ∼ v₂) : v₁ ∼ f ∘ v₂ :=
127+
.symm (h.symm.comp_left f)
128+
129+
@[simp]
130+
lemma comp_left_iff [FunLike F P₁ P₃] [DilationClass F P₁ P₃] (f : F) : f ∘ v₁ ∼ v₂ ↔ v₁ ∼ v₂ :=
131+
⟨.trans <| .comp_right f (.refl _), .comp_left f⟩
132+
133+
@[simp]
134+
lemma comp_right_iff [FunLike F P₂ P₃] [DilationClass F P₂ P₃] (f : F) : v₁ ∼ f ∘ v₂ ↔ v₁ ∼ v₂ := by
135+
rw [similar_comm, comp_left_iff, similar_comm]
136+
137+
end Dilation
138+
139+
/-! Similarity is preserved under isometries.
140+
141+
While these are trivial consequences of the dilation results, they avoid ending up with a
142+
`toDilation` in the expression, and so are easier to apply to plain functions.
143+
If `Dilation` were a predicate like `Isometry` then these would not be needed.
144+
-/
145+
146+
section Isometry
147+
148+
lemma comp_isometry_left {f : P₁ → P₃} (hf : Isometry f) (h : v₁ ∼ v₂) : f ∘ v₁ ∼ v₂ :=
149+
comp_left hf.toDilation h
150+
151+
lemma comp_isometry_right {f : P₂ → P₃} (hf : Isometry f) (h : v₁ ∼ v₂) : v₁ ∼ f ∘ v₂ :=
152+
comp_right hf.toDilation h
153+
154+
@[simp]
155+
lemma comp_isometry_left_iff {f : P₁ → P₃} (hf : Isometry f) : f ∘ v₁ ∼ v₂ ↔ v₁ ∼ v₂ :=
156+
comp_left_iff hf.toDilation
157+
158+
@[simp]
159+
lemma comp_isometry_right_iff {f : P₂ → P₃} (hf : Isometry f) : v₁ ∼ f ∘ v₂ ↔ v₁ ∼ v₂ :=
160+
comp_right_iff hf.toDilation
161+
162+
end Isometry
163+
116164
section Triangle
117165

118166
variable {a b c : P₁} {a' b' c' : P₂}

0 commit comments

Comments
 (0)