Theorem: closedUnderRestriction_iff_id_le
File: Mathlib/Geometry/Manifold/ChartedSpace.lean

tactic: constructor
state_before: H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
⊢ ClosedUnderRestriction G ↔ idRestrGroupoid ≤ G
state_after: case mp
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
⊢ ClosedUnderRestriction G → idRestrGroupoid ≤ G

case mpr
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
⊢ idRestrGroupoid ≤ G → ClosedUnderRestriction G

tactic: intro _i
state_before: case mp
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
⊢ ClosedUnderRestriction G → idRestrGroupoid ≤ G
state_after: case mp
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
⊢ idRestrGroupoid ≤ G

tactic: rw [StructureGroupoid.le_iff]
state_before: case mp
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
⊢ idRestrGroupoid ≤ G
state_after: case mp
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
⊢ ∀ e ∈ idRestrGroupoid, e ∈ G

tactic: rintro e ⟨s, hs, hes⟩
state_before: case mp
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
⊢ ∀ e ∈ idRestrGroupoid, e ∈ G
state_after: case mp.intro.intro
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
⊢ e ∈ G

tactic: refine G.mem_of_eqOnSource ?_ hes
state_before: case mp.intro.intro
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
⊢ e ∈ G
state_after: case mp.intro.intro
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
⊢ ofSet s hs ∈ G

tactic: convert closedUnderRestriction' G.id_mem hs
state_before: case mp.intro.intro
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
⊢ ofSet s hs ∈ G
state_after: case h.e'_4
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
⊢ ofSet s hs = (PartialHomeomorph.refl H).restr s

tactic: ext
state_before: case h.e'_4
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
⊢ ofSet s hs = (PartialHomeomorph.refl H).restr s
state_after: case h.e'_4.h
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
x✝ : H
⊢ ↑(ofSet s hs) x✝ = ↑((PartialHomeomorph.refl H).restr s) x✝

case h.e'_4.hinv
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
x✝ : H
⊢ ↑(ofSet s hs).symm x✝ = ↑((PartialHomeomorph.refl H).restr s).symm x✝

case h.e'_4.hs.h
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
x✝ : H
⊢ x✝ ∈ (ofSet s hs).source ↔ x✝ ∈ ((PartialHomeomorph.refl H).restr s).source

tactic: rw [PartialHomeomorph.restr_apply, PartialHomeomorph.refl_apply, id, ofSet_apply, id_eq]
state_before: case h.e'_4.h
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
x✝ : H
⊢ ↑(ofSet s hs) x✝ = ↑((PartialHomeomorph.refl H).restr s) x✝
state_after: no goals

tactic: simp [hs]
state_before: case h.e'_4.hinv
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
x✝ : H
⊢ ↑(ofSet s hs).symm x✝ = ↑((PartialHomeomorph.refl H).restr s).symm x✝
state_after: no goals

tactic: simp [hs.interior_eq]
state_before: case h.e'_4.hs.h
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
_i : ClosedUnderRestriction G
e : PartialHomeomorph H H
s : Set H
hs : IsOpen s
hes : e ≈ ofSet s hs
x✝ : H
⊢ x✝ ∈ (ofSet s hs).source ↔ x✝ ∈ ((PartialHomeomorph.refl H).restr s).source
state_after: no goals

tactic: intro h
state_before: case mpr
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
⊢ idRestrGroupoid ≤ G → ClosedUnderRestriction G
state_after: case mpr
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
⊢ ClosedUnderRestriction G

tactic: constructor
state_before: case mpr
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
⊢ ClosedUnderRestriction G
state_after: case mpr.closedUnderRestriction
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
⊢ ∀ {e : PartialHomeomorph H H}, e ∈ G → ∀ (s : Set H), IsOpen s → e.restr s ∈ G

tactic: intro e he s hs
state_before: case mpr.closedUnderRestriction
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
⊢ ∀ {e : PartialHomeomorph H H}, e ∈ G → ∀ (s : Set H), IsOpen s → e.restr s ∈ G
state_after: case mpr.closedUnderRestriction
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
e : PartialHomeomorph H H
he : e ∈ G
s : Set H
hs : IsOpen s
⊢ e.restr s ∈ G

tactic: rw [← ofSet_trans (e : PartialHomeomorph H H) hs]
state_before: case mpr.closedUnderRestriction
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
e : PartialHomeomorph H H
he : e ∈ G
s : Set H
hs : IsOpen s
⊢ e.restr s ∈ G
state_after: case mpr.closedUnderRestriction
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
e : PartialHomeomorph H H
he : e ∈ G
s : Set H
hs : IsOpen s
⊢ ofSet s hs ≫ₕ e ∈ G

tactic: refine G.trans ?_ he
state_before: case mpr.closedUnderRestriction
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
e : PartialHomeomorph H H
he : e ∈ G
s : Set H
hs : IsOpen s
⊢ ofSet s hs ≫ₕ e ∈ G
state_after: case mpr.closedUnderRestriction
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
e : PartialHomeomorph H H
he : e ∈ G
s : Set H
hs : IsOpen s
⊢ ofSet s hs ∈ G

tactic: apply StructureGroupoid.le_iff.mp h
state_before: case mpr.closedUnderRestriction
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
e : PartialHomeomorph H H
he : e ∈ G
s : Set H
hs : IsOpen s
⊢ ofSet s hs ∈ G
state_after: case mpr.closedUnderRestriction.a
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
e : PartialHomeomorph H H
he : e ∈ G
s : Set H
hs : IsOpen s
⊢ ofSet s hs ∈ idRestrGroupoid

tactic: exact idRestrGroupoid_mem hs
state_before: case mpr.closedUnderRestriction.a
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝ : TopologicalSpace H
G : StructureGroupoid H
h : idRestrGroupoid ≤ G
e : PartialHomeomorph H H
he : e ∈ G
s : Set H
hs : IsOpen s
⊢ ofSet s hs ∈ idRestrGroupoid
state_after: no goals