Theorem: StructureGroupoid.LocalInvariantProp.right_invariance
File: Mathlib/Geometry/Manifold/LocalInvariantProperties.lean

tactic: refine' ⟨fun h ↦ _, hG.right_invariance' he hxe⟩
state_before: H : Type u_1
M : Type ?u.6200
H' : Type u_2
M' : Type ?u.6206
X : Type ?u.6209
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f : H → H'
e : LocalHomeomorph H H
he : e ∈ G
hxe : x ∈ e.source
⊢ P (f ∘ ↑(LocalHomeomorph.symm e)) (↑(LocalHomeomorph.symm e) ⁻¹' s) (↑e x) ↔ P f s x

tactic: have := hG.right_invariance' (G.symm he) (e.mapsTo hxe) h
state_before: H : Type u_1
M : Type ?u.6200
H' : Type u_2
M' : Type ?u.6206
X : Type ?u.6209
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f : H → H'
e : LocalHomeomorph H H
he : e ∈ G
hxe : x ∈ e.source
h : P (f ∘ ↑(LocalHomeomorph.symm e)) (↑(LocalHomeomorph.symm e) ⁻¹' s) (↑e x)
⊢ P f s x

tactic: rw [e.symm_symm, e.left_inv hxe] at this
state_before: H : Type u_1
M : Type ?u.6200
H' : Type u_2
M' : Type ?u.6206
X : Type ?u.6209
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f : H → H'
e : LocalHomeomorph H H
he : e ∈ G
hxe : x ∈ e.source
h : P (f ∘ ↑(LocalHomeomorph.symm e)) (↑(LocalHomeomorph.symm e) ⁻¹' s) (↑e x)
this :
  P ((f ∘ ↑(LocalHomeomorph.symm e)) ∘ ↑(LocalHomeomorph.symm (LocalHomeomorph.symm e)))
    (↑(LocalHomeomorph.symm (LocalHomeomorph.symm e)) ⁻¹' (↑(LocalHomeomorph.symm e) ⁻¹' s))
    (↑(LocalHomeomorph.symm e) (↑e x))
⊢ P f s x

tactic: refine' hG.congr _ ((hG.congr_set _).mp this)
state_before: H : Type u_1
M : Type ?u.6200
H' : Type u_2
M' : Type ?u.6206
X : Type ?u.6209
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f : H → H'
e : LocalHomeomorph H H
he : e ∈ G
hxe : x ∈ e.source
h : P (f ∘ ↑(LocalHomeomorph.symm e)) (↑(LocalHomeomorph.symm e) ⁻¹' s) (↑e x)
this : P ((f ∘ ↑(LocalHomeomorph.symm e)) ∘ ↑e) (↑e ⁻¹' (↑(LocalHomeomorph.symm e) ⁻¹' s)) x
⊢ P f s x

tactic: refine' eventually_of_mem (e.open_source.mem_nhds hxe) fun x' hx' ↦ _
state_before: case refine'_1
H : Type u_1
M : Type ?u.6200
H' : Type u_2
M' : Type ?u.6206
X : Type ?u.6209
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f : H → H'
e : LocalHomeomorph H H
he : e ∈ G
hxe : x ∈ e.source
h : P (f ∘ ↑(LocalHomeomorph.symm e)) (↑(LocalHomeomorph.symm e) ⁻¹' s) (↑e x)
this : P ((f ∘ ↑(LocalHomeomorph.symm e)) ∘ ↑e) (↑e ⁻¹' (↑(LocalHomeomorph.symm e) ⁻¹' s)) x
⊢ (f ∘ ↑(LocalHomeomorph.symm e)) ∘ ↑e =ᶠ[𝓝 x] f

tactic: simp_rw [Function.comp_apply, e.left_inv hx']
state_before: case refine'_1
H : Type u_1
M : Type ?u.6200
H' : Type u_2
M' : Type ?u.6206
X : Type ?u.6209
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f : H → H'
e : LocalHomeomorph H H
he : e ∈ G
hxe : x ∈ e.source
h : P (f ∘ ↑(LocalHomeomorph.symm e)) (↑(LocalHomeomorph.symm e) ⁻¹' s) (↑e x)
this : P ((f ∘ ↑(LocalHomeomorph.symm e)) ∘ ↑e) (↑e ⁻¹' (↑(LocalHomeomorph.symm e) ⁻¹' s)) x
x' : H
hx' : x' ∈ e.source
⊢ ((f ∘ ↑(LocalHomeomorph.symm e)) ∘ ↑e) x' = f x'

tactic: rw [eventuallyEq_set]
state_before: case refine'_2
H : Type u_1
M : Type ?u.6200
H' : Type u_2
M' : Type ?u.6206
X : Type ?u.6209
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f : H → H'
e : LocalHomeomorph H H
he : e ∈ G
hxe : x ∈ e.source
h : P (f ∘ ↑(LocalHomeomorph.symm e)) (↑(LocalHomeomorph.symm e) ⁻¹' s) (↑e x)
this : P ((f ∘ ↑(LocalHomeomorph.symm e)) ∘ ↑e) (↑e ⁻¹' (↑(LocalHomeomorph.symm e) ⁻¹' s)) x
⊢ ↑e ⁻¹' (↑(LocalHomeomorph.symm e) ⁻¹' s) =ᶠ[𝓝 x] s

tactic: refine' eventually_of_mem (e.open_source.mem_nhds hxe) fun x' hx' ↦ _
state_before: case refine'_2
H : Type u_1
M : Type ?u.6200
H' : Type u_2
M' : Type ?u.6206
X : Type ?u.6209
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f : H → H'
e : LocalHomeomorph H H
he : e ∈ G
hxe : x ∈ e.source
h : P (f ∘ ↑(LocalHomeomorph.symm e)) (↑(LocalHomeomorph.symm e) ⁻¹' s) (↑e x)
this : P ((f ∘ ↑(LocalHomeomorph.symm e)) ∘ ↑e) (↑e ⁻¹' (↑(LocalHomeomorph.symm e) ⁻¹' s)) x
⊢ ∀ᶠ (x : H) in 𝓝 x, x ∈ ↑e ⁻¹' (↑(LocalHomeomorph.symm e) ⁻¹' s) ↔ x ∈ s

tactic: simp_rw [mem_preimage, e.left_inv hx']
state_before: case refine'_2
H : Type u_1
M : Type ?u.6200
H' : Type u_2
M' : Type ?u.6206
X : Type ?u.6209
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f : H → H'
e : LocalHomeomorph H H
he : e ∈ G
hxe : x ∈ e.source
h : P (f ∘ ↑(LocalHomeomorph.symm e)) (↑(LocalHomeomorph.symm e) ⁻¹' s) (↑e x)
this : P ((f ∘ ↑(LocalHomeomorph.symm e)) ∘ ↑e) (↑e ⁻¹' (↑(LocalHomeomorph.symm e) ⁻¹' s)) x
x' : H
hx' : x' ∈ e.source
⊢ x' ∈ ↑e ⁻¹' (↑(LocalHomeomorph.symm e) ⁻¹' s) ↔ x' ∈ s