Theorem: ofSet_mem_analyticGroupoid
File: Mathlib/Geometry/Manifold/AnalyticManifold.lean

tactic: rw [analyticGroupoid]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ PartialHomeomorph.ofSet s hs ∈ analyticGroupoid I
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ PartialHomeomorph.ofSet s hs ∈
    contDiffGroupoid ⊤ I ⊓
      {
          property := fun f s =>
            AnalyticOn 𝕜 (↑I ∘ f ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
              ↑I ∘ f ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I),
          comp := ⋯, id_mem := ⋯, locality := ⋯, congr := ⋯ }.groupoid

tactic: refine And.intro (ofSet_mem_contDiffGroupoid ∞ I hs) ?_
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ PartialHomeomorph.ofSet s hs ∈
    contDiffGroupoid ⊤ I ⊓
      {
          property := fun f s =>
            AnalyticOn 𝕜 (↑I ∘ f ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
              ↑I ∘ f ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I),
          comp := ⋯, id_mem := ⋯, locality := ⋯, congr := ⋯ }.groupoid
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ PartialHomeomorph.ofSet s hs ∈
    {
          property := fun f s =>
            AnalyticOn 𝕜 (↑I ∘ f ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
              ↑I ∘ f ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I),
          comp := ⋯, id_mem := ⋯, locality := ⋯, congr := ⋯ }.groupoid.members

tactic: apply mem_groupoid_of_pregroupoid.mpr
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ PartialHomeomorph.ofSet s hs ∈
    {
          property := fun f s =>
            AnalyticOn 𝕜 (↑I ∘ f ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
              ↑I ∘ f ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I),
          comp := ⋯, id_mem := ⋯, locality := ⋯, congr := ⋯ }.groupoid.members
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ {
          property := fun f s =>
            AnalyticOn 𝕜 (↑I ∘ f ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
              ↑I ∘ f ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I),
          comp := ⋯, id_mem := ⋯, locality := ⋯, congr := ⋯ }.property
      (↑(PartialHomeomorph.ofSet s hs)) (PartialHomeomorph.ofSet s hs).source ∧
    {
          property := fun f s =>
            AnalyticOn 𝕜 (↑I ∘ f ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
              ↑I ∘ f ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I),
          comp := ⋯, id_mem := ⋯, locality := ⋯, congr := ⋯ }.property
      (↑(PartialHomeomorph.ofSet s hs).symm) (PartialHomeomorph.ofSet s hs).target

tactic: suffices h : AnalyticOn 𝕜 (I ∘ I.symm) (I.symm ⁻¹' s ∩ interior (range I)) ∧
    (I.symm ⁻¹' s ∩ interior (range I)).image (I ∘ I.symm) ⊆ interior (range I) by
  simp only [PartialHomeomorph.ofSet_apply, id_comp, PartialHomeomorph.ofSet_toPartialEquiv,
    PartialEquiv.ofSet_source, h, comp_apply, mem_range, image_subset_iff, true_and,
    PartialHomeomorph.ofSet_symm, PartialEquiv.ofSet_target, and_self]
  intro x hx
  refine mem_preimage.mpr ?_
  rw [← I.right_inv (interior_subset hx.right)] at hx
  exact hx.right
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ {
          property := fun f s =>
            AnalyticOn 𝕜 (↑I ∘ f ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
              ↑I ∘ f ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I),
          comp := ⋯, id_mem := ⋯, locality := ⋯, congr := ⋯ }.property
      (↑(PartialHomeomorph.ofSet s hs)) (PartialHomeomorph.ofSet s hs).source ∧
    {
          property := fun f s =>
            AnalyticOn 𝕜 (↑I ∘ f ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
              ↑I ∘ f ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I),
          comp := ⋯, id_mem := ⋯, locality := ⋯, congr := ⋯ }.property
      (↑(PartialHomeomorph.ofSet s hs).symm) (PartialHomeomorph.ofSet s hs).target
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)

tactic: apply And.intro
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
state_after: case left
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I))

case right
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)

tactic: simp only [PartialHomeomorph.ofSet_apply, id_comp, PartialHomeomorph.ofSet_toPartialEquiv,
  PartialEquiv.ofSet_source, h, comp_apply, mem_range, image_subset_iff, true_and,
  PartialHomeomorph.ofSet_symm, PartialEquiv.ofSet_target, and_self]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
h :
  AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
⊢ {
          property := fun f s =>
            AnalyticOn 𝕜 (↑I ∘ f ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
              ↑I ∘ f ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I),
          comp := ⋯, id_mem := ⋯, locality := ⋯, congr := ⋯ }.property
      (↑(PartialHomeomorph.ofSet s hs)) (PartialHomeomorph.ofSet s hs).source ∧
    {
          property := fun f s =>
            AnalyticOn 𝕜 (↑I ∘ f ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
              ↑I ∘ f ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I),
          comp := ⋯, id_mem := ⋯, locality := ⋯, congr := ⋯ }.property
      (↑(PartialHomeomorph.ofSet s hs).symm) (PartialHomeomorph.ofSet s hs).target
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
h :
  AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
⊢ ↑I.symm ⁻¹' s ∩ interior (range ↑I) ⊆ (fun a => ↑I (↑I.symm a)) ⁻¹' interior (range ↑I)

tactic: intro x hx
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
h :
  AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
⊢ ↑I.symm ⁻¹' s ∩ interior (range ↑I) ⊆ (fun a => ↑I (↑I.symm a)) ⁻¹' interior (range ↑I)
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
h :
  AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
x : E
hx : x ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I)
⊢ x ∈ (fun a => ↑I (↑I.symm a)) ⁻¹' interior (range ↑I)

tactic: refine mem_preimage.mpr ?_
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
h :
  AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
x : E
hx : x ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I)
⊢ x ∈ (fun a => ↑I (↑I.symm a)) ⁻¹' interior (range ↑I)
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
h :
  AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
x : E
hx : x ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I)
⊢ ↑I (↑I.symm x) ∈ interior (range ↑I)

tactic: rw [← I.right_inv (interior_subset hx.right)] at hx
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
h :
  AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
x : E
hx : x ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I)
⊢ ↑I (↑I.symm x) ∈ interior (range ↑I)
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
h :
  AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
x : E
hx : ↑I (↑I.symm x) ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I)
⊢ ↑I (↑I.symm x) ∈ interior (range ↑I)

tactic: exact hx.right
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
h :
  AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ∧
    ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
x : E
hx : ↑I (↑I.symm x) ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I)
⊢ ↑I (↑I.symm x) ∈ interior (range ↑I)
state_after: no goals

tactic: have : AnalyticOn 𝕜 (1 : E →L[𝕜] E) (univ : Set E) := (fun x _ => (1 : E →L[𝕜] E).analyticAt x)
state_before: case left
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I))
state_after: case left
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
this : AnalyticOn 𝕜 (⇑1) univ
⊢ AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I))

tactic: exact (this.mono (subset_univ (s.preimage (I.symm) ∩ interior (range I)))).congr
  ((hs.preimage I.continuous_symm).inter isOpen_interior)
  fun z hz => (I.right_inv (interior_subset hz.right)).symm
state_before: case left
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
this : AnalyticOn 𝕜 (⇑1) univ
⊢ AnalyticOn 𝕜 (↑I ∘ ↑I.symm) (↑I.symm ⁻¹' s ∩ interior (range ↑I))
state_after: no goals

tactic: intro x hx
state_before: case right
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
⊢ ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I)) ⊆ interior (range ↑I)
state_after: case right
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
x : E
hx : x ∈ ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I))
⊢ x ∈ interior (range ↑I)

tactic: simp only [comp_apply, mem_image] at hx
state_before: case right
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
x : E
hx : x ∈ ↑I ∘ ↑I.symm '' (↑I.symm ⁻¹' s ∩ interior (range ↑I))
⊢ x ∈ interior (range ↑I)
state_after: case right
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
x : E
hx : ∃ x_1 ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I), ↑I (↑I.symm x_1) = x
⊢ x ∈ interior (range ↑I)

tactic: rcases hx with ⟨y, hy⟩
state_before: case right
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
x : E
hx : ∃ x_1 ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I), ↑I (↑I.symm x_1) = x
⊢ x ∈ interior (range ↑I)
state_after: case right.intro
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
x y : E
hy : y ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I) ∧ ↑I (↑I.symm y) = x
⊢ x ∈ interior (range ↑I)

tactic: rw [← hy.right, I.right_inv (interior_subset hy.left.right)]
state_before: case right.intro
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
x y : E
hy : y ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I) ∧ ↑I (↑I.symm y) = x
⊢ x ∈ interior (range ↑I)
state_after: case right.intro
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
x y : E
hy : y ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I) ∧ ↑I (↑I.symm y) = x
⊢ y ∈ interior (range ↑I)

tactic: exact hy.left.right
state_before: case right.intro
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝ : TopologicalSpace M
s : Set H
hs : IsOpen s
x y : E
hy : y ∈ ↑I.symm ⁻¹' s ∩ interior (range ↑I) ∧ ↑I (↑I.symm y) = x
⊢ y ∈ interior (range ↑I)
state_after: no goals