Theorem: AddCircle.partialHomeomorphCoe_source
File: Mathlib/Topology/Instances/AddCircle.lean

Proof steps:
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝⁴ : LinearOrderedAddCommGroup 𝕜
inst✝³ : TopologicalSpace 𝕜
inst✝² : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝¹ : Archimedean 𝕜
x : AddCircle p
hx : x ≠ ↑a
inst✝ : DiscreteTopology ↥(zmultiples p)
⊢ ∀ ⦃x : 𝕜⦄, x ∈ Ioo a (a + p) → ↑x ∈ {↑a}ᶜ
state_after: 𝕜 : Type u_1
B : Type u_2
inst✝⁴ : LinearOrderedAddCommGroup 𝕜
inst✝³ : TopologicalSpace 𝕜
inst✝² : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝¹ : Archimedean 𝕜
x✝ : AddCircle p
hx✝ : x✝ ≠ ↑a
inst✝ : DiscreteTopology ↥(zmultiples p)
x : 𝕜
hx : x ∈ Ioo a (a + p)
hx' : ↑x ∈ {↑a}
⊢ False
tactic: intro x hx hx'
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝⁴ : LinearOrderedAddCommGroup 𝕜
inst✝³ : TopologicalSpace 𝕜
inst✝² : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝¹ : Archimedean 𝕜
x✝ : AddCircle p
hx✝ : x✝ ≠ ↑a
inst✝ : DiscreteTopology ↥(zmultiples p)
x : 𝕜
hx : x ∈ Ioo a (a + p)
hx' : ↑x ∈ {↑a}
⊢ False
state_after: no goals
tactic: exact hx.1.ne' ((coe_eq_coe_iff_of_mem_Ico (Ioo_subset_Ico_self hx)
      (left_mem_Ico.mpr (lt_add_of_pos_right a hp.out))).mp hx')
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝⁴ : LinearOrderedAddCommGroup 𝕜
inst✝³ : TopologicalSpace 𝕜
inst✝² : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝¹ : Archimedean 𝕜
x : AddCircle p
hx : x ≠ ↑a
inst✝ : DiscreteTopology ↥(zmultiples p)
⊢ ∀ ⦃x : AddCircle p⦄, x ∈ {↑a}ᶜ → (fun x => ↑((equivIco p a) x)) x ∈ Ioo a (a + p)
state_after: 𝕜 : Type u_1
B : Type u_2
inst✝⁴ : LinearOrderedAddCommGroup 𝕜
inst✝³ : TopologicalSpace 𝕜
inst✝² : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝¹ : Archimedean 𝕜
x✝ : AddCircle p
hx✝ : x✝ ≠ ↑a
inst✝ : DiscreteTopology ↥(zmultiples p)
x : AddCircle p
hx : x ∈ {↑a}ᶜ
⊢ (fun x => ↑((equivIco p a) x)) x ∈ Ioo a (a + p)
tactic: intro x hx
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝⁴ : LinearOrderedAddCommGroup 𝕜
inst✝³ : TopologicalSpace 𝕜
inst✝² : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝¹ : Archimedean 𝕜
x✝ : AddCircle p
hx✝ : x✝ ≠ ↑a
inst✝ : DiscreteTopology ↥(zmultiples p)
x : AddCircle p
hx : x ∈ {↑a}ᶜ
⊢ (fun x => ↑((equivIco p a) x)) x ∈ Ioo a (a + p)
state_after: no goals
tactic: exact (eq_left_or_mem_Ioo_of_mem_Ico (equivIco p a x).2).resolve_left
      (hx ∘ ((equivIco p a).symm_apply_apply x).symm.trans ∘ congrArg _)
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝⁴ : LinearOrderedAddCommGroup 𝕜
inst✝³ : TopologicalSpace 𝕜
inst✝² : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝¹ : Archimedean 𝕜
x : AddCircle p
hx : x ≠ ↑a
inst✝ : DiscreteTopology ↥(zmultiples p)
⊢ ContinuousOn
    { toFun := QuotientAddGroup.mk, invFun := fun x => ↑((equivIco p a) x), source := Ioo a (a + p), target := {↑a}ᶜ,
        map_source' := ⋯, map_target' := ⋯, left_inv' := ⋯, right_inv' := ⋯ }.invFun
    { toFun := QuotientAddGroup.mk, invFun := fun x => ↑((equivIco p a) x), source := Ioo a (a + p), target := {↑a}ᶜ,
        map_source' := ⋯, map_target' := ⋯, left_inv' := ⋯, right_inv' := ⋯ }.target
state_after: no goals
tactic: exact ContinuousAt.continuousOn
      (fun _ ↦ continuousAt_subtype_val.comp ∘ continuousAt_equivIco p a)