Theorem: ContinuousAddMonoidHom.locallyCompactSpace_of_equicontinuousAt
File: Mathlib/Topology/Algebra/ContinuousMonoidHom.lean

Proof steps:
state_before: F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : EquicontinuousAt (fun f => ⇑↑f) 1
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: replace h := equicontinuous_of_equicontinuousAt_one _ h
state_before: F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: obtain ⟨W, hWo, hWV, hWc⟩ := local_compact_nhds hV
state_before: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: let S1 : Set (X →* Y) := {f | Set.MapsTo f U W}
state_before: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: let S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo f U W}
state_before: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: let S3 : Set C(X, Y) := (↑) '' S2
state_before: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: let S4 : Set (X → Y) := (↑) '' S3
state_before: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
h : Equicontinuous (DFunLike.coe ∘ Subtype.val)
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
h : Equicontinuous fun x => ⇑↑x
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: replace h : Equicontinuous ((↑) : S1 → X → Y) :=
    h.comp (Subtype.map _root_.id fun f hf ↦ hf.mono_right hWV)
state_before: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
h : Equicontinuous fun x => ⇑↑x
hS4 : S4 = DFunLike.coe '' S1
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
hS4 : S4 = DFunLike.coe '' S1
h : Equicontinuous fun x => ⇑↑x
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: replace h : Equicontinuous ((↑) : S3 → X → Y) := by
    rw [equicontinuous_iff_range, ← Set.image_eq_range] at h ⊢
    rwa [← hS4] at h
state_before: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
hS4 : S4 = DFunLike.coe '' S1
h : Equicontinuous fun x => ⇑↑x
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
h : Equicontinuous fun x => ⇑↑x
hS4 : S4 = (U.pi fun x => W) ∩ Set.range DFunLike.coe
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: replace hS4 : S4 = Set.pi U (fun _ ↦ W) ∩ Set.range ((↑) : (X →* Y) → (X → Y)) := by
    simp_rw [hS4, Set.ext_iff, Set.mem_image, S1, Set.mem_setOf_eq]
    exact fun f ↦ ⟨fun ⟨g, hg, hf⟩ ↦ hf ▸ ⟨hg, g, rfl⟩, fun ⟨hg, g, hf⟩ ↦ ⟨g, hf ▸ hg, hf⟩⟩
state_before: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
h : Equicontinuous fun x => ⇑↑x
hS4 : S4 = (U.pi fun x => W) ∩ Set.range DFunLike.coe
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
h : Equicontinuous fun x => ⇑↑x
hS4 : IsClosed S4
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: replace hS4 : IsClosed S4 :=
    hS4.symm ▸ (isClosed_set_pi (fun _ _ ↦ hWc.isClosed)).inter (MonoidHom.isClosed_range_coe X Y)
state_before: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
h : Equicontinuous fun x => ⇑↑x
hS4 : IsClosed S4
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
h : Equicontinuous fun x => ⇑↑x
hS4 : IsClosed S4
hS2 : (interior S2).Nonempty
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
tactic: have hS2 : (interior S2).Nonempty := by
    let T : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo f U (interior W)}
    have h1 : T.Nonempty := ⟨1, fun _ _ ↦ mem_interior_iff_mem_nhds.mpr hWo⟩
    have h2 : T ⊆ S2 := fun f hf ↦ hf.mono_right interior_subset
    have h3 : IsOpen T := isOpen_induced (ContinuousMap.isOpen_setOf_mapsTo hU isOpen_interior)
    exact h1.mono (interior_maximal h2 h3)
state_before: case intro.intro.intro
F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹⁸ : Monoid A
inst✝¹⁷ : Monoid B
inst✝¹⁶ : Monoid C
inst✝¹⁵ : Monoid D
inst✝¹⁴ : CommGroup E
inst✝¹³ : TopologicalSpace A
inst✝¹² : TopologicalSpace B
inst✝¹¹ : TopologicalSpace C
inst✝¹⁰ : TopologicalSpace D
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalGroup E
X : Type u_7
Y : Type u_8
inst✝⁷ : TopologicalSpace X
inst✝⁶ : Group X
inst✝⁵ : TopologicalGroup X
inst✝⁴ : UniformSpace Y
inst✝³ : CommGroup Y
inst✝² : UniformGroup Y
inst✝¹ : T0Space Y
inst✝ : CompactSpace Y
U : Set X
V : Set Y
hU : IsCompact U
hV : V ∈ nhds 1
W : Set Y
hWo : W ∈ nhds 1
hWV : W ⊆ V
hWc : IsCompact W
S1 : Set (X →* Y) := {f | Set.MapsTo (⇑f) U W}
S2 : Set (ContinuousMonoidHom X Y) := {f | Set.MapsTo (⇑f) U W}
S3 : Set C(X, Y) := _root_.toContinuousMap '' S2
S4 : Set (X → Y) := DFunLike.coe '' S3
h : Equicontinuous fun x => ⇑↑x
hS4 : IsClosed S4
hS2 : (interior S2).Nonempty
⊢ LocallyCompactSpace (ContinuousMonoidHom X Y)
state_after: no goals
tactic: exact TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group
    ⟨⟨S2, (inducing_toContinuousMap X Y).isCompact_iff.mpr
      (ArzelaAscoli.isCompact_of_equicontinuous S3 hS4.isCompact h)⟩, hS2⟩