-- Mathlib/Topology/Instances/AddCircle.lean
theorem continuous_right_toIcoMod : ContinuousWithinAt (toIcoMod hp a) (Ici x) x

Proof state:
case intro.intro.intro
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
d : 𝕜 := toIcoDiv hp a x • p
hd : toIcoMod hp a x ∈ Ico a (a + p)
⊢ ∃ u, (∃ l u_1, x ∈ Ioo l u_1 ∧ Ioo l u_1 ⊆ u) ∧ u ∩ Ici x ⊆ toIcoMod hp a ⁻¹' s

Tactic:
simp_rw [subset_def, mem_inter_iff]

Result:
case intro.intro.intro
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
d : 𝕜 := toIcoDiv hp a x • p
hd : toIcoMod hp a x ∈ Ico a (a + p)
⊢ ∃ u,
    (∃ l u_1, x ∈ Ioo l u_1 ∧ ∀ x ∈ Ioo l u_1, x ∈ u) ∧ ∀ (x_1 : 𝕜), x_1 ∈ u ∧ x_1 ∈ Ici x → x_1 ∈ toIcoMod hp a ⁻¹' s

Proof state:
case intro.intro.intro
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
⊢ ∃ u, (∃ l u_1, x ∈ Ioo l u_1 ∧ Ioo l u_1 ⊆ u) ∧ u ∩ Ici x ⊆ toIcoMod hp a ⁻¹' s

Tactic:
let d := toIcoDiv hp a x • p

Result:
case intro.intro.intro
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
d : 𝕜 := toIcoDiv hp a x • p
⊢ ∃ u, (∃ l u_1, x ∈ Ioo l u_1 ∧ Ioo l u_1 ⊆ u) ∧ u ∩ Ici x ⊆ toIcoMod hp a ⁻¹' s

Proof state:
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
h : ∃ l u, toIcoMod hp a x ∈ Ioo l u ∧ Ioo l u ⊆ s
⊢ ∃ u, (∃ l u_1, x ∈ Ioo l u_1 ∧ Ioo l u_1 ⊆ u) ∧ u ∩ Ici x ⊆ toIcoMod hp a ⁻¹' s

Tactic:
obtain ⟨l, u, hxI, hIs⟩ := h

Result:
case intro.intro.intro
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
⊢ ∃ u, (∃ l u_1, x ∈ Ioo l u_1 ∧ Ioo l u_1 ⊆ u) ∧ u ∩ Ici x ⊆ toIcoMod hp a ⁻¹' s

Proof state:
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
h : s ∈ 𝓝 (toIcoMod hp a x)
⊢ ∃ u ∈ 𝓝 x, u ∩ Ici x ⊆ toIcoMod hp a ⁻¹' s

Tactic:
haveI : Nontrivial 𝕜 := ⟨⟨0, p, hp.ne⟩⟩

Result:
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
h : s ∈ 𝓝 (toIcoMod hp a x)
this : Nontrivial 𝕜
⊢ ∃ u ∈ 𝓝 x, u ∩ Ici x ⊆ toIcoMod hp a ⁻¹' s

Proof state:
case intro.intro.intro.refine_2.intro
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
d : 𝕜 := toIcoDiv hp a x • p
hd : toIcoMod hp a x ∈ Ico a (a + p)
y : 𝕜
h : l < y - d ∧ y - d < a + p ∧ y - d < u
h' : y ∈ Ici x
⊢ y ∈ toIcoMod hp a ⁻¹' s

Tactic:
apply hIs

Result:
case intro.intro.intro.refine_2.intro.a
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
d : 𝕜 := toIcoDiv hp a x • p
hd : toIcoMod hp a x ∈ Ico a (a + p)
y : 𝕜
h : l < y - d ∧ y - d < a + p ∧ y - d < u
h' : y ∈ Ici x
⊢ toIcoMod hp a y ∈ Ioo l u

Proof state:
case intro.intro.intro.refine_2
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
d : 𝕜 := toIcoDiv hp a x • p
hd : toIcoMod hp a x ∈ Ico a (a + p)
y : 𝕜
⊢ (l < y - d ∧ y - d < a + p ∧ y - d < u) ∧ y ∈ Ici x → y ∈ toIcoMod hp a ⁻¹' s

Tactic:
rintro ⟨h, h'⟩

Result:
case intro.intro.intro.refine_2.intro
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
d : 𝕜 := toIcoDiv hp a x • p
hd : toIcoMod hp a x ∈ Ico a (a + p)
y : 𝕜
h : l < y - d ∧ y - d < a + p ∧ y - d < u
h' : y ∈ Ici x
⊢ y ∈ toIcoMod hp a ⁻¹' s

Proof state:
case intro.intro.intro
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
d : 𝕜 := toIcoDiv hp a x • p
hd : toIcoMod hp a x ∈ Ico a (a + p)
⊢ ∃ u,
    (∃ l u_1, x ∈ Ioo l u_1 ∧ ∀ x ∈ Ioo l u_1, x ∈ u) ∧ ∀ (x_1 : 𝕜), x_1 ∈ u ∧ x_1 ∈ Ici x → x_1 ∈ toIcoMod hp a ⁻¹' s

Tactic:
refine ⟨_, ⟨l + d, min (a + p) u + d, ?_, fun x => id⟩, fun y => ?_⟩ <;>
  simp_rw [← sub_mem_Ioo_iff_left, mem_Ioo, lt_min_iff]

Result:
case intro.intro.intro.refine_1
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
d : 𝕜 := toIcoDiv hp a x • p
hd : toIcoMod hp a x ∈ Ico a (a + p)
⊢ l < x - d ∧ x - d < a + p ∧ x - d < u

case intro.intro.intro.refine_2
𝕜 : Type u_1
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
a x : 𝕜
s : Set 𝕜
this : Nontrivial 𝕜
l u : 𝕜
hxI : toIcoMod hp a x ∈ Ioo l u
hIs : Ioo l u ⊆ s
d : 𝕜 := toIcoDiv hp a x • p
hd : toIcoMod hp a x ∈ Ico a (a + p)
y : 𝕜
⊢ (l < y - d ∧ y - d < a + p ∧ y - d < u) ∧ y ∈ Ici x → y ∈ toIcoMod hp a ⁻¹' s