Theorem: AddUnits.embedding_val_mk'
File: Mathlib/Topology/Algebra/Constructions.lean

Proof steps:
state_before: M✝ : Type u_1
X : Type u_2
inst✝⁴ : TopologicalSpace M✝
inst✝³ : Monoid M✝
inst✝² : TopologicalSpace X
M : Type u_3
inst✝¹ : Monoid M
inst✝ : TopologicalSpace M
f : M → M
hc : ContinuousOn f {x | IsUnit x}
hf : ∀ (u : Mˣ), f ↑u = ↑u⁻¹
⊢ Embedding val
state_after: M✝ : Type u_1
X : Type u_2
inst✝⁴ : TopologicalSpace M✝
inst✝³ : Monoid M✝
inst✝² : TopologicalSpace X
M : Type u_3
inst✝¹ : Monoid M
inst✝ : TopologicalSpace M
f : M → M
hc : ContinuousOn f {x | IsUnit x}
hf : ∀ (u : Mˣ), f ↑u = ↑u⁻¹
⊢ instTopologicalSpaceUnits = TopologicalSpace.induced val inst✝
tactic: refine ⟨⟨?_⟩, ext⟩
state_before: M✝ : Type u_1
X : Type u_2
inst✝⁴ : TopologicalSpace M✝
inst✝³ : Monoid M✝
inst✝² : TopologicalSpace X
M : Type u_3
inst✝¹ : Monoid M
inst✝ : TopologicalSpace M
f : M → M
hc : ContinuousOn f {x | IsUnit x}
hf : ∀ (u : Mˣ), f ↑u = ↑u⁻¹
⊢ instTopologicalSpaceUnits = TopologicalSpace.induced val inst✝
state_after: M✝ : Type u_1
X : Type u_2
inst✝⁴ : TopologicalSpace M✝
inst✝³ : Monoid M✝
inst✝² : TopologicalSpace X
M : Type u_3
inst✝¹ : Monoid M
inst✝ : TopologicalSpace M
f : M → M
hc : ContinuousOn f {x | IsUnit x}
hf : ∀ (u : Mˣ), f ↑u = ↑u⁻¹
⊢ ∀ (x : Mˣ), ContinuousAt (fun u => ↑u⁻¹) x
tactic: rw [topology_eq_inf, inf_eq_left, ← continuous_iff_le_induced,
    @continuous_iff_continuousAt _ _ (.induced _ _)]
state_before: M✝ : Type u_1
X : Type u_2
inst✝⁴ : TopologicalSpace M✝
inst✝³ : Monoid M✝
inst✝² : TopologicalSpace X
M : Type u_3
inst✝¹ : Monoid M
inst✝ : TopologicalSpace M
f : M → M
hc : ContinuousOn f {x | IsUnit x}
hf : ∀ (u : Mˣ), f ↑u = ↑u⁻¹
⊢ ∀ (x : Mˣ), ContinuousAt (fun u => ↑u⁻¹) x
state_after: M✝ : Type u_1
X : Type u_2
inst✝⁴ : TopologicalSpace M✝
inst✝³ : Monoid M✝
inst✝² : TopologicalSpace X
M : Type u_3
inst✝¹ : Monoid M
inst✝ : TopologicalSpace M
f : M → M
hc : ContinuousOn f {x | IsUnit x}
hf : ∀ (u : Mˣ), f ↑u = ↑u⁻¹
u : Mˣ
s : Set M
hs : s ∈ 𝓝 ((fun u => ↑u⁻¹) u)
⊢ s ∈ Filter.map (fun u => ↑u⁻¹) (𝓝 u)
tactic: intros u s hs
state_before: M✝ : Type u_1
X : Type u_2
inst✝⁴ : TopologicalSpace M✝
inst✝³ : Monoid M✝
inst✝² : TopologicalSpace X
M : Type u_3
inst✝¹ : Monoid M
inst✝ : TopologicalSpace M
f : M → M
hc : ContinuousOn f {x | IsUnit x}
hf : ∀ (u : Mˣ), f ↑u = ↑u⁻¹
u : Mˣ
s : Set M
hs : s ∈ 𝓝 ((fun u => ↑u⁻¹) u)
⊢ s ∈ Filter.map (fun u => ↑u⁻¹) (𝓝 u)
state_after: M✝ : Type u_1
X : Type u_2
inst✝⁴ : TopologicalSpace M✝
inst✝³ : Monoid M✝
inst✝² : TopologicalSpace X
M : Type u_3
inst✝¹ : Monoid M
inst✝ : TopologicalSpace M
f : M → M
hc : ContinuousOn f {x | IsUnit x}
hf : ∀ (u : Mˣ), f ↑u = ↑u⁻¹
u : Mˣ
s : Set M
hs : s ∈ 𝓝 (f ↑u)
⊢ (fun u => f ↑u) ⁻¹' s ∈ comap val (𝓝 ↑u)
tactic: simp only [← hf, nhds_induced, Filter.mem_map] at hs ⊢
state_before: M✝ : Type u_1
X : Type u_2
inst✝⁴ : TopologicalSpace M✝
inst✝³ : Monoid M✝
inst✝² : TopologicalSpace X
M : Type u_3
inst✝¹ : Monoid M
inst✝ : TopologicalSpace M
f : M → M
hc : ContinuousOn f {x | IsUnit x}
hf : ∀ (u : Mˣ), f ↑u = ↑u⁻¹
u : Mˣ
s : Set M
hs : s ∈ 𝓝 (f ↑u)
⊢ (fun u => f ↑u) ⁻¹' s ∈ comap val (𝓝 ↑u)
state_after: no goals
tactic: exact ⟨_, mem_inf_principal.1 (hc u u.isUnit hs), fun u' hu' ↦ hu' u'.isUnit⟩