Theorem: LocalHomeomorph.singleton_hasGroupoid
File: Mathlib/Geometry/Manifold/ChartedSpace.lean

tactic: intro e' e'' he' he''
state_before: H : Type u
H' : Type ?u.75941
M : Type ?u.75944
M' : Type ?u.75947
M'' : Type ?u.75950
inst✝⁴ : TopologicalSpace H
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
α : Type u_1
inst✝¹ : TopologicalSpace α
e : LocalHomeomorph α H
h : e.source = univ
G : StructureGroupoid H
inst✝ : ClosedUnderRestriction G
src✝ : ChartedSpace H α := singletonChartedSpace e h
⊢ ∀ {e_1 e' : LocalHomeomorph α H}, e_1 ∈ atlas H α → e' ∈ atlas H α → LocalHomeomorph.symm e_1 ≫ₕ e' ∈ G

tactic: rw [e.singletonChartedSpace_mem_atlas_eq h e' he',
  e.singletonChartedSpace_mem_atlas_eq h e'' he'']
state_before: H : Type u
H' : Type ?u.75941
M : Type ?u.75944
M' : Type ?u.75947
M'' : Type ?u.75950
inst✝⁴ : TopologicalSpace H
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
α : Type u_1
inst✝¹ : TopologicalSpace α
e : LocalHomeomorph α H
h : e.source = univ
G : StructureGroupoid H
inst✝ : ClosedUnderRestriction G
src✝ : ChartedSpace H α := singletonChartedSpace e h
e' e'' : LocalHomeomorph α H
he' : e' ∈ atlas H α
he'' : e'' ∈ atlas H α
⊢ LocalHomeomorph.symm e' ≫ₕ e'' ∈ G

tactic: refine' G.eq_on_source _ e.trans_symm_self
state_before: H : Type u
H' : Type ?u.75941
M : Type ?u.75944
M' : Type ?u.75947
M'' : Type ?u.75950
inst✝⁴ : TopologicalSpace H
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
α : Type u_1
inst✝¹ : TopologicalSpace α
e : LocalHomeomorph α H
h : e.source = univ
G : StructureGroupoid H
inst✝ : ClosedUnderRestriction G
src✝ : ChartedSpace H α := singletonChartedSpace e h
e' e'' : LocalHomeomorph α H
he' : e' ∈ atlas H α
he'' : e'' ∈ atlas H α
⊢ LocalHomeomorph.symm e ≫ₕ e ∈ G

tactic: have hle : idRestrGroupoid ≤ G := (closedUnderRestriction_iff_id_le G).mp (by assumption)
state_before: H : Type u
H' : Type ?u.75941
M : Type ?u.75944
M' : Type ?u.75947
M'' : Type ?u.75950
inst✝⁴ : TopologicalSpace H
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
α : Type u_1
inst✝¹ : TopologicalSpace α
e : LocalHomeomorph α H
h : e.source = univ
G : StructureGroupoid H
inst✝ : ClosedUnderRestriction G
src✝ : ChartedSpace H α := singletonChartedSpace e h
e' e'' : LocalHomeomorph α H
he' : e' ∈ atlas H α
he'' : e'' ∈ atlas H α
⊢ ofSet e.target (_ : IsOpen e.target) ∈ G

tactic: exact StructureGroupoid.le_iff.mp hle _ (idRestrGroupoid_mem _)
state_before: H : Type u
H' : Type ?u.75941
M : Type ?u.75944
M' : Type ?u.75947
M'' : Type ?u.75950
inst✝⁴ : TopologicalSpace H
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
α : Type u_1
inst✝¹ : TopologicalSpace α
e : LocalHomeomorph α H
h : e.source = univ
G : StructureGroupoid H
inst✝ : ClosedUnderRestriction G
src✝ : ChartedSpace H α := singletonChartedSpace e h
e' e'' : LocalHomeomorph α H
he' : e' ∈ atlas H α
he'' : e'' ∈ atlas H α
hle : idRestrGroupoid ≤ G
⊢ ofSet e.target (_ : IsOpen e.target) ∈ G

tactic: assumption
state_before: H : Type u
H' : Type ?u.75941
M : Type ?u.75944
M' : Type ?u.75947
M'' : Type ?u.75950
inst✝⁴ : TopologicalSpace H
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
α : Type u_1
inst✝¹ : TopologicalSpace α
e : LocalHomeomorph α H
h : e.source = univ
G : StructureGroupoid H
inst✝ : ClosedUnderRestriction G
src✝ : ChartedSpace H α := singletonChartedSpace e h
e' e'' : LocalHomeomorph α H
he' : e' ∈ atlas H α
he'' : e'' ∈ atlas H α
⊢ ClosedUnderRestriction G