Theorem: IsSeparatedMap.eqOn_of_comp_eqOn
File: Mathlib/Topology/SeparatedMap.lean

Proof steps:
state_before: X : Type u_3
Y : ?m.22013
A✝ : Type ?u.22022
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace A✝
E : Type u_1
A : Type u_2
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalSpace A
p : E → X
sep : IsSeparatedMap p
inj : IsLocallyInjective p
s : Set A
hs : IsPreconnected s
g g₁ g₂ : A → E
h₁ : ContinuousOn g₁ s
h₂ : ContinuousOn g₂ s
he : Set.EqOn (p ∘ g₁) (p ∘ g₂) s
a : A
has : a ∈ s
ha : g₁ a = g₂ a
⊢ Set.EqOn g₁ g₂ s
state_after: X : Type u_3
Y : ?m.22013
A✝ : Type ?u.22022
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace A✝
E : Type u_1
A : Type u_2
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalSpace A
p : E → X
sep : IsSeparatedMap p
inj : IsLocallyInjective p
s : Set A
hs : IsPreconnected s
g g₁ g₂ : A → E
h₁ : ContinuousOn g₁ s
h₂ : ContinuousOn g₂ s
he : s.restrict (p ∘ g₁) = s.restrict (p ∘ g₂)
a : A
has : a ∈ s
ha : g₁ a = g₂ a
⊢ s.restrict g₁ = s.restrict g₂
tactic: rw [← Set.restrict_eq_restrict_iff] at he ⊢
state_before: X : Type u_3
Y : ?m.22013
A✝ : Type ?u.22022
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace A✝
E : Type u_1
A : Type u_2
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalSpace A
p : E → X
sep : IsSeparatedMap p
inj : IsLocallyInjective p
s : Set A
hs : IsPreconnected s
g g₁ g₂ : A → E
h₁ : ContinuousOn g₁ s
h₂ : ContinuousOn g₂ s
he : s.restrict (p ∘ g₁) = s.restrict (p ∘ g₂)
a : A
has : a ∈ s
ha : g₁ a = g₂ a
⊢ s.restrict g₁ = s.restrict g₂
state_after: X : Type u_3
Y : ?m.22013
A✝ : Type ?u.22022
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace A✝
E : Type u_1
A : Type u_2
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalSpace A
p : E → X
sep : IsSeparatedMap p
inj : IsLocallyInjective p
s : Set A
hs : IsPreconnected s
g g₁ g₂ : A → E
h₁ : Continuous (s.restrict g₁)
h₂ : Continuous (s.restrict g₂)
he : s.restrict (p ∘ g₁) = s.restrict (p ∘ g₂)
a : A
has : a ∈ s
ha : g₁ a = g₂ a
⊢ s.restrict g₁ = s.restrict g₂
tactic: rw [continuousOn_iff_continuous_restrict] at h₁ h₂
state_before: X : Type u_3
Y : ?m.22013
A✝ : Type ?u.22022
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace A✝
E : Type u_1
A : Type u_2
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalSpace A
p : E → X
sep : IsSeparatedMap p
inj : IsLocallyInjective p
s : Set A
hs : IsPreconnected s
g g₁ g₂ : A → E
h₁ : Continuous (s.restrict g₁)
h₂ : Continuous (s.restrict g₂)
he : s.restrict (p ∘ g₁) = s.restrict (p ∘ g₂)
a : A
has : a ∈ s
ha : g₁ a = g₂ a
⊢ s.restrict g₁ = s.restrict g₂
state_after: X : Type u_3
Y : ?m.22013
A✝ : Type ?u.22022
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace A✝
E : Type u_1
A : Type u_2
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalSpace A
p : E → X
sep : IsSeparatedMap p
inj : IsLocallyInjective p
s : Set A
hs : PreconnectedSpace ↑s
g g₁ g₂ : A → E
h₁ : Continuous (s.restrict g₁)
h₂ : Continuous (s.restrict g₂)
he : s.restrict (p ∘ g₁) = s.restrict (p ∘ g₂)
a : A
has : a ∈ s
ha : g₁ a = g₂ a
⊢ s.restrict g₁ = s.restrict g₂
tactic: rw [isPreconnected_iff_preconnectedSpace] at hs
state_before: X : Type u_3
Y : ?m.22013
A✝ : Type ?u.22022
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace A✝
E : Type u_1
A : Type u_2
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalSpace A
p : E → X
sep : IsSeparatedMap p
inj : IsLocallyInjective p
s : Set A
hs : PreconnectedSpace ↑s
g g₁ g₂ : A → E
h₁ : Continuous (s.restrict g₁)
h₂ : Continuous (s.restrict g₂)
he : s.restrict (p ∘ g₁) = s.restrict (p ∘ g₂)
a : A
has : a ∈ s
ha : g₁ a = g₂ a
⊢ s.restrict g₁ = s.restrict g₂
state_after: no goals
tactic: exact sep.eq_of_comp_eq inj h₁ h₂ he ⟨a, has⟩ ha