l3lab/ntp-mathlib huggingface dataset:
theorem strongTopology.continuousSMul [RingHomSurjective σ] [RingHomIsometric σ]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousSMul 𝕜₂ F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖)
    (h𝔖₃ : ∀ S ∈ 𝔖, Bornology.IsVonNBounded 𝕜₁ S) :
    @ContinuousSMul 𝕜₂ (E →SL[σ] F) _ _ (strongTopology σ F 𝔖) := by
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁶ : NormedField 𝕜₁
inst✝¹⁵ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : Module 𝕜₁ E
inst✝¹² : AddCommGroup E'
inst✝¹¹ : Module ℝ E'
inst✝¹⁰ : AddCommGroup F
inst✝⁹ : Module 𝕜₂ F
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module ℝ F'
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace E'
inst✝⁴ : RingHomSurjective σ
inst✝³ : RingHomIsometric σ
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul 𝕜₂ F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
h𝔖₃ : ∀ S ∈ 𝔖, Bornology.IsVonNBounded 𝕜₁ S
⊢ ContinuousSMul 𝕜₂ (E →SL[σ] F)

Next tactic:
letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
theorem strongTopology.continuousSMul [RingHomSurjective σ] [RingHomIsometric σ]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousSMul 𝕜₂ F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖)
    (h𝔖₃ : ∀ S ∈ 𝔖, Bornology.IsVonNBounded 𝕜₁ S) :
    @ContinuousSMul 𝕜₂ (E →SL[σ] F) _ _ (strongTopology σ F 𝔖) := by
  letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁶ : NormedField 𝕜₁
inst✝¹⁵ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : Module 𝕜₁ E
inst✝¹² : AddCommGroup E'
inst✝¹¹ : Module ℝ E'
inst✝¹⁰ : AddCommGroup F
inst✝⁹ : Module 𝕜₂ F
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module ℝ F'
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace E'
inst✝⁴ : RingHomSurjective σ
inst✝³ : RingHomIsometric σ
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul 𝕜₂ F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
h𝔖₃ : ∀ S ∈ 𝔖, Bornology.IsVonNBounded 𝕜₁ S
this : UniformSpace F := TopologicalAddGroup.toUniformSpace F
⊢ ContinuousSMul 𝕜₂ (E →SL[σ] F)

Next tactic:
haveI : UniformAddGroup F := comm_topologicalAddGroup_is_uniform
theorem strongTopology.continuousSMul [RingHomSurjective σ] [RingHomIsometric σ]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousSMul 𝕜₂ F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖)
    (h𝔖₃ : ∀ S ∈ 𝔖, Bornology.IsVonNBounded 𝕜₁ S) :
    @ContinuousSMul 𝕜₂ (E →SL[σ] F) _ _ (strongTopology σ F 𝔖) := by
  letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
  haveI : UniformAddGroup F := comm_topologicalAddGroup_is_uniform
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁶ : NormedField 𝕜₁
inst✝¹⁵ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : Module 𝕜₁ E
inst✝¹² : AddCommGroup E'
inst✝¹¹ : Module ℝ E'
inst✝¹⁰ : AddCommGroup F
inst✝⁹ : Module 𝕜₂ F
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module ℝ F'
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace E'
inst✝⁴ : RingHomSurjective σ
inst✝³ : RingHomIsometric σ
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul 𝕜₂ F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
h𝔖₃ : ∀ S ∈ 𝔖, Bornology.IsVonNBounded 𝕜₁ S
this✝ : UniformSpace F := TopologicalAddGroup.toUniformSpace F
this : UniformAddGroup F
⊢ ContinuousSMul 𝕜₂ (E →SL[σ] F)

Next tactic:
letI : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
theorem strongTopology.continuousSMul [RingHomSurjective σ] [RingHomIsometric σ]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousSMul 𝕜₂ F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖)
    (h𝔖₃ : ∀ S ∈ 𝔖, Bornology.IsVonNBounded 𝕜₁ S) :
    @ContinuousSMul 𝕜₂ (E →SL[σ] F) _ _ (strongTopology σ F 𝔖) := by
  letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
  haveI : UniformAddGroup F := comm_topologicalAddGroup_is_uniform
  letI : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁶ : NormedField 𝕜₁
inst✝¹⁵ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : Module 𝕜₁ E
inst✝¹² : AddCommGroup E'
inst✝¹¹ : Module ℝ E'
inst✝¹⁰ : AddCommGroup F
inst✝⁹ : Module 𝕜₂ F
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module ℝ F'
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace E'
inst✝⁴ : RingHomSurjective σ
inst✝³ : RingHomIsometric σ
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul 𝕜₂ F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
h𝔖₃ : ∀ S ∈ 𝔖, Bornology.IsVonNBounded 𝕜₁ S
this✝¹ : UniformSpace F := TopologicalAddGroup.toUniformSpace F
this✝ : UniformAddGroup F
this : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
⊢ ContinuousSMul 𝕜₂ (E →SL[σ] F)

Next tactic:
let φ : (E →SL[σ] F) →ₗ[𝕜₂] E →ᵤ[𝔖] F :=
    ⟨⟨(FunLike.coe : (E →SL[σ] F) → E → F), fun _ _ => rfl⟩, fun _ _ => rfl⟩
theorem strongTopology.continuousSMul [RingHomSurjective σ] [RingHomIsometric σ]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousSMul 𝕜₂ F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖)
    (h𝔖₃ : ∀ S ∈ 𝔖, Bornology.IsVonNBounded 𝕜₁ S) :
    @ContinuousSMul 𝕜₂ (E →SL[σ] F) _ _ (strongTopology σ F 𝔖) := by
  letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
  haveI : UniformAddGroup F := comm_topologicalAddGroup_is_uniform
  letI : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
  let φ : (E →SL[σ] F) →ₗ[𝕜₂] E →ᵤ[𝔖] F :=
    ⟨⟨(FunLike.coe : (E →SL[σ] F) → E → F), fun _ _ => rfl⟩, fun _ _ => rfl⟩
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁶ : NormedField 𝕜₁
inst✝¹⁵ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : Module 𝕜₁ E
inst✝¹² : AddCommGroup E'
inst✝¹¹ : Module ℝ E'
inst✝¹⁰ : AddCommGroup F
inst✝⁹ : Module 𝕜₂ F
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module ℝ F'
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace E'
inst✝⁴ : RingHomSurjective σ
inst✝³ : RingHomIsometric σ
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul 𝕜₂ F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
h𝔖₃ : ∀ S ∈ 𝔖, Bornology.IsVonNBounded 𝕜₁ S
this✝¹ : UniformSpace F := TopologicalAddGroup.toUniformSpace F
this✝ : UniformAddGroup F
this : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
φ : (E →SL[σ] F) →ₗ[𝕜₂] E →ᵤ[𝔖] F :=
  { toAddHom := { toFun := FunLike.coe, map_add' := (_ : ∀ (x x_1 : E →SL[σ] F), ⇑(x + x_1) = ⇑(x + x_1)) },
    map_smul' :=
      (_ :
        ∀ (x : 𝕜₂) (x_1 : E →SL[σ] F),
          AddHom.toFun { toFun := FunLike.coe, map_add' := (_ : ∀ (x x_2 : E →SL[σ] F), ⇑(x + x_2) = ⇑(x + x_2)) }
              (x • x_1) =
            AddHom.toFun { toFun := FunLike.coe, map_add' := (_ : ∀ (x x_2 : E →SL[σ] F), ⇑(x + x_2) = ⇑(x + x_2)) }
              (x • x_1)) }
⊢ ContinuousSMul 𝕜₂ (E →SL[σ] F)

Next tactic:
exact
    UniformOnFun.continuousSMul_induced_of_image_bounded 𝕜₂ E F (E →SL[σ] F) h𝔖₁ h𝔖₂ φ ⟨rfl⟩
      fun u s hs => (h𝔖₃ s hs).image u
theorem strongTopology.hasBasis_nhds_zero_of_basis [TopologicalSpace F] [TopologicalAddGroup F]
    {ι : Type*} (𝔖 : Set (Set E)) (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop}
    {b : ι → Set F} (h : (𝓝 0 : Filter F).HasBasis p b) :
    (@nhds (E →SL[σ] F) (strongTopology σ F 𝔖) 0).HasBasis
      (fun Si : Set E × ι => Si.1 ∈ 𝔖 ∧ p Si.2)
      fun Si => { f : E →SL[σ] F | ∀ x ∈ Si.1, f x ∈ b Si.2 } := by
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹³ : NormedField 𝕜₁
inst✝¹² : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module 𝕜₁ E
inst✝⁹ : AddCommGroup E'
inst✝⁸ : Module ℝ E'
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module 𝕜₂ F
inst✝⁵ : AddCommGroup F'
inst✝⁴ : Module ℝ F'
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace E'
inst✝¹ : TopologicalSpace F
inst✝ : TopologicalAddGroup F
ι : Type u_7
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
b : ι → Set F
h : Filter.HasBasis (𝓝 0) p b
⊢ Filter.HasBasis (𝓝 0) (fun Si => Si.1 ∈ 𝔖 ∧ p Si.2) fun Si => {f | ∀ x ∈ Si.1, f x ∈ b Si.2}

Next tactic:
letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
theorem strongTopology.hasBasis_nhds_zero_of_basis [TopologicalSpace F] [TopologicalAddGroup F]
    {ι : Type*} (𝔖 : Set (Set E)) (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop}
    {b : ι → Set F} (h : (𝓝 0 : Filter F).HasBasis p b) :
    (@nhds (E →SL[σ] F) (strongTopology σ F 𝔖) 0).HasBasis
      (fun Si : Set E × ι => Si.1 ∈ 𝔖 ∧ p Si.2)
      fun Si => { f : E →SL[σ] F | ∀ x ∈ Si.1, f x ∈ b Si.2 } := by
  letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹³ : NormedField 𝕜₁
inst✝¹² : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module 𝕜₁ E
inst✝⁹ : AddCommGroup E'
inst✝⁸ : Module ℝ E'
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module 𝕜₂ F
inst✝⁵ : AddCommGroup F'
inst✝⁴ : Module ℝ F'
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace E'
inst✝¹ : TopologicalSpace F
inst✝ : TopologicalAddGroup F
ι : Type u_7
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
b : ι → Set F
h : Filter.HasBasis (𝓝 0) p b
this : UniformSpace F := TopologicalAddGroup.toUniformSpace F
⊢ Filter.HasBasis (𝓝 0) (fun Si => Si.1 ∈ 𝔖 ∧ p Si.2) fun Si => {f | ∀ x ∈ Si.1, f x ∈ b Si.2}

Next tactic:
haveI : UniformAddGroup F := comm_topologicalAddGroup_is_uniform
theorem strongTopology.hasBasis_nhds_zero_of_basis [TopologicalSpace F] [TopologicalAddGroup F]
    {ι : Type*} (𝔖 : Set (Set E)) (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop}
    {b : ι → Set F} (h : (𝓝 0 : Filter F).HasBasis p b) :
    (@nhds (E →SL[σ] F) (strongTopology σ F 𝔖) 0).HasBasis
      (fun Si : Set E × ι => Si.1 ∈ 𝔖 ∧ p Si.2)
      fun Si => { f : E →SL[σ] F | ∀ x ∈ Si.1, f x ∈ b Si.2 } := by
  letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
  haveI : UniformAddGroup F := comm_topologicalAddGroup_is_uniform
  -- Porting note: replace `nhds_induced` by `Inducing.nhds_eq_comap` (which needs an additional
  -- `letI`) so that Lean doesn't try to use the product topology
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹³ : NormedField 𝕜₁
inst✝¹² : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module 𝕜₁ E
inst✝⁹ : AddCommGroup E'
inst✝⁸ : Module ℝ E'
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module 𝕜₂ F
inst✝⁵ : AddCommGroup F'
inst✝⁴ : Module ℝ F'
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace E'
inst✝¹ : TopologicalSpace F
inst✝ : TopologicalAddGroup F
ι : Type u_7
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
b : ι → Set F
h : Filter.HasBasis (𝓝 0) p b
this✝ : UniformSpace F := TopologicalAddGroup.toUniformSpace F
this : UniformAddGroup F
⊢ Filter.HasBasis (𝓝 0) (fun Si => Si.1 ∈ 𝔖 ∧ p Si.2) fun Si => {f | ∀ x ∈ Si.1, f x ∈ b Si.2}

Next tactic:
letI : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
theorem strongTopology.hasBasis_nhds_zero_of_basis [TopologicalSpace F] [TopologicalAddGroup F]
    {ι : Type*} (𝔖 : Set (Set E)) (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop}
    {b : ι → Set F} (h : (𝓝 0 : Filter F).HasBasis p b) :
    (@nhds (E →SL[σ] F) (strongTopology σ F 𝔖) 0).HasBasis
      (fun Si : Set E × ι => Si.1 ∈ 𝔖 ∧ p Si.2)
      fun Si => { f : E →SL[σ] F | ∀ x ∈ Si.1, f x ∈ b Si.2 } := by
  letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
  haveI : UniformAddGroup F := comm_topologicalAddGroup_is_uniform
  -- Porting note: replace `nhds_induced` by `Inducing.nhds_eq_comap` (which needs an additional
  -- `letI`) so that Lean doesn't try to use the product topology
  letI : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹³ : NormedField 𝕜₁
inst✝¹² : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module 𝕜₁ E
inst✝⁹ : AddCommGroup E'
inst✝⁸ : Module ℝ E'
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module 𝕜₂ F
inst✝⁵ : AddCommGroup F'
inst✝⁴ : Module ℝ F'
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace E'
inst✝¹ : TopologicalSpace F
inst✝ : TopologicalAddGroup F
ι : Type u_7
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
b : ι → Set F
h : Filter.HasBasis (𝓝 0) p b
this✝¹ : UniformSpace F := TopologicalAddGroup.toUniformSpace F
this✝ : UniformAddGroup F
this : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
⊢ Filter.HasBasis (𝓝 0) (fun Si => Si.1 ∈ 𝔖 ∧ p Si.2) fun Si => {f | ∀ x ∈ Si.1, f x ∈ b Si.2}

Next tactic:
rw [(strongTopology.embedding_coeFn σ F 𝔖).toInducing.nhds_eq_comap]
theorem strongTopology.hasBasis_nhds_zero_of_basis [TopologicalSpace F] [TopologicalAddGroup F]
    {ι : Type*} (𝔖 : Set (Set E)) (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop}
    {b : ι → Set F} (h : (𝓝 0 : Filter F).HasBasis p b) :
    (@nhds (E →SL[σ] F) (strongTopology σ F 𝔖) 0).HasBasis
      (fun Si : Set E × ι => Si.1 ∈ 𝔖 ∧ p Si.2)
      fun Si => { f : E →SL[σ] F | ∀ x ∈ Si.1, f x ∈ b Si.2 } := by
  letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
  haveI : UniformAddGroup F := comm_topologicalAddGroup_is_uniform
  -- Porting note: replace `nhds_induced` by `Inducing.nhds_eq_comap` (which needs an additional
  -- `letI`) so that Lean doesn't try to use the product topology
  letI : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
  rw [(strongTopology.embedding_coeFn σ F 𝔖).toInducing.nhds_eq_comap]
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹³ : NormedField 𝕜₁
inst✝¹² : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module 𝕜₁ E
inst✝⁹ : AddCommGroup E'
inst✝⁸ : Module ℝ E'
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module 𝕜₂ F
inst✝⁵ : AddCommGroup F'
inst✝⁴ : Module ℝ F'
inst✝³ : TopologicalSpace E
inst✝² : TopologicalSpace E'
inst✝¹ : TopologicalSpace F
inst✝ : TopologicalAddGroup F
ι : Type u_7
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
b : ι → Set F
h : Filter.HasBasis (𝓝 0) p b
this✝¹ : UniformSpace F := TopologicalAddGroup.toUniformSpace F
this✝ : UniformAddGroup F
this : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
⊢ Filter.HasBasis (Filter.comap (⇑(UniformOnFun.ofFun 𝔖) ∘ FunLike.coe) (𝓝 ((⇑(UniformOnFun.ofFun 𝔖) ∘ FunLike.coe) 0)))
    (fun Si => Si.1 ∈ 𝔖 ∧ p Si.2) fun Si => {f | ∀ x ∈ Si.1, f x ∈ b Si.2}

Next tactic:
exact (UniformOnFun.hasBasis_nhds_zero_of_basis 𝔖 h𝔖₁ h𝔖₂ h).comap FunLike.coe
theorem strongTopology.continuousConstSMul {M : Type*}
    [Monoid M] [DistribMulAction M F] [SMulCommClass 𝕜₂ M F]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousConstSMul M F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) :
    @ContinuousConstSMul M (E →SL[σ] F) (strongTopology σ F 𝔖) _ := by
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁷ : NormedField 𝕜₁
inst✝¹⁶ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁵ : AddCommGroup E
inst✝¹⁴ : Module 𝕜₁ E
inst✝¹³ : AddCommGroup E'
inst✝¹² : Module ℝ E'
inst✝¹¹ : AddCommGroup F
inst✝¹⁰ : Module 𝕜₂ F
inst✝⁹ : AddCommGroup F'
inst✝⁸ : Module ℝ F'
inst✝⁷ : TopologicalSpace E
inst✝⁶ : TopologicalSpace E'
M : Type u_7
inst✝⁵ : Monoid M
inst✝⁴ : DistribMulAction M F
inst✝³ : SMulCommClass 𝕜₂ M F
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousConstSMul M F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
⊢ ContinuousConstSMul M (E →SL[σ] F)

Next tactic:
letI := strongTopology σ F 𝔖
theorem strongTopology.continuousConstSMul {M : Type*}
    [Monoid M] [DistribMulAction M F] [SMulCommClass 𝕜₂ M F]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousConstSMul M F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) :
    @ContinuousConstSMul M (E →SL[σ] F) (strongTopology σ F 𝔖) _ := by
  letI := strongTopology σ F 𝔖
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁷ : NormedField 𝕜₁
inst✝¹⁶ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁵ : AddCommGroup E
inst✝¹⁴ : Module 𝕜₁ E
inst✝¹³ : AddCommGroup E'
inst✝¹² : Module ℝ E'
inst✝¹¹ : AddCommGroup F
inst✝¹⁰ : Module 𝕜₂ F
inst✝⁹ : AddCommGroup F'
inst✝⁸ : Module ℝ F'
inst✝⁷ : TopologicalSpace E
inst✝⁶ : TopologicalSpace E'
M : Type u_7
inst✝⁵ : Monoid M
inst✝⁴ : DistribMulAction M F
inst✝³ : SMulCommClass 𝕜₂ M F
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousConstSMul M F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
this : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
⊢ ContinuousConstSMul M (E →SL[σ] F)

Next tactic:
haveI : TopologicalAddGroup (E →SL[σ] F) := strongTopology.topologicalAddGroup σ F 𝔖
theorem strongTopology.continuousConstSMul {M : Type*}
    [Monoid M] [DistribMulAction M F] [SMulCommClass 𝕜₂ M F]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousConstSMul M F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) :
    @ContinuousConstSMul M (E →SL[σ] F) (strongTopology σ F 𝔖) _ := by
  letI := strongTopology σ F 𝔖
  haveI : TopologicalAddGroup (E →SL[σ] F) := strongTopology.topologicalAddGroup σ F 𝔖
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁷ : NormedField 𝕜₁
inst✝¹⁶ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁵ : AddCommGroup E
inst✝¹⁴ : Module 𝕜₁ E
inst✝¹³ : AddCommGroup E'
inst✝¹² : Module ℝ E'
inst✝¹¹ : AddCommGroup F
inst✝¹⁰ : Module 𝕜₂ F
inst✝⁹ : AddCommGroup F'
inst✝⁸ : Module ℝ F'
inst✝⁷ : TopologicalSpace E
inst✝⁶ : TopologicalSpace E'
M : Type u_7
inst✝⁵ : Monoid M
inst✝⁴ : DistribMulAction M F
inst✝³ : SMulCommClass 𝕜₂ M F
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousConstSMul M F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
this✝ : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
this : TopologicalAddGroup (E →SL[σ] F)
⊢ ContinuousConstSMul M (E →SL[σ] F)

Next tactic:
refine ⟨fun c ↦ continuous_of_continuousAt_zero (DistribSMul.toAddMonoidHom _ c) ?_⟩
theorem strongTopology.continuousConstSMul {M : Type*}
    [Monoid M] [DistribMulAction M F] [SMulCommClass 𝕜₂ M F]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousConstSMul M F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) :
    @ContinuousConstSMul M (E →SL[σ] F) (strongTopology σ F 𝔖) _ := by
  letI := strongTopology σ F 𝔖
  haveI : TopologicalAddGroup (E →SL[σ] F) := strongTopology.topologicalAddGroup σ F 𝔖
  refine ⟨fun c ↦ continuous_of_continuousAt_zero (DistribSMul.toAddMonoidHom _ c) ?_⟩
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁷ : NormedField 𝕜₁
inst✝¹⁶ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁵ : AddCommGroup E
inst✝¹⁴ : Module 𝕜₁ E
inst✝¹³ : AddCommGroup E'
inst✝¹² : Module ℝ E'
inst✝¹¹ : AddCommGroup F
inst✝¹⁰ : Module 𝕜₂ F
inst✝⁹ : AddCommGroup F'
inst✝⁸ : Module ℝ F'
inst✝⁷ : TopologicalSpace E
inst✝⁶ : TopologicalSpace E'
M : Type u_7
inst✝⁵ : Monoid M
inst✝⁴ : DistribMulAction M F
inst✝³ : SMulCommClass 𝕜₂ M F
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousConstSMul M F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
this✝ : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
this : TopologicalAddGroup (E →SL[σ] F)
c : M
⊢ ContinuousAt (⇑(DistribSMul.toAddMonoidHom (E →SL[σ] F) c)) 0

Next tactic:
have H₁ := strongTopology.hasBasis_nhds_zero σ F _ h𝔖₁ h𝔖₂
theorem strongTopology.continuousConstSMul {M : Type*}
    [Monoid M] [DistribMulAction M F] [SMulCommClass 𝕜₂ M F]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousConstSMul M F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) :
    @ContinuousConstSMul M (E →SL[σ] F) (strongTopology σ F 𝔖) _ := by
  letI := strongTopology σ F 𝔖
  haveI : TopologicalAddGroup (E →SL[σ] F) := strongTopology.topologicalAddGroup σ F 𝔖
  refine ⟨fun c ↦ continuous_of_continuousAt_zero (DistribSMul.toAddMonoidHom _ c) ?_⟩
  have H₁ := strongTopology.hasBasis_nhds_zero σ F _ h𝔖₁ h𝔖₂
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁷ : NormedField 𝕜₁
inst✝¹⁶ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁵ : AddCommGroup E
inst✝¹⁴ : Module 𝕜₁ E
inst✝¹³ : AddCommGroup E'
inst✝¹² : Module ℝ E'
inst✝¹¹ : AddCommGroup F
inst✝¹⁰ : Module 𝕜₂ F
inst✝⁹ : AddCommGroup F'
inst✝⁸ : Module ℝ F'
inst✝⁷ : TopologicalSpace E
inst✝⁶ : TopologicalSpace E'
M : Type u_7
inst✝⁵ : Monoid M
inst✝⁴ : DistribMulAction M F
inst✝³ : SMulCommClass 𝕜₂ M F
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousConstSMul M F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
this✝ : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
this : TopologicalAddGroup (E →SL[σ] F)
c : M
H₁ : Filter.HasBasis (𝓝 0) (fun SV => SV.1 ∈ 𝔖 ∧ SV.2 ∈ 𝓝 0) fun SV => {f | ∀ x ∈ SV.1, f x ∈ SV.2}
⊢ ContinuousAt (⇑(DistribSMul.toAddMonoidHom (E →SL[σ] F) c)) 0

Next tactic:
have H₂ : Filter.Tendsto (c • ·) (𝓝 0 : Filter F) (𝓝 0) :=
    (continuous_const_smul c).tendsto' 0 _ (smul_zero _)
theorem strongTopology.continuousConstSMul {M : Type*}
    [Monoid M] [DistribMulAction M F] [SMulCommClass 𝕜₂ M F]
    [TopologicalSpace F] [TopologicalAddGroup F] [ContinuousConstSMul M F] (𝔖 : Set (Set E))
    (h𝔖₁ : 𝔖.Nonempty) (h𝔖₂ : DirectedOn (· ⊆ ·) 𝔖) :
    @ContinuousConstSMul M (E →SL[σ] F) (strongTopology σ F 𝔖) _ := by
  letI := strongTopology σ F 𝔖
  haveI : TopologicalAddGroup (E →SL[σ] F) := strongTopology.topologicalAddGroup σ F 𝔖
  refine ⟨fun c ↦ continuous_of_continuousAt_zero (DistribSMul.toAddMonoidHom _ c) ?_⟩
  have H₁ := strongTopology.hasBasis_nhds_zero σ F _ h𝔖₁ h𝔖₂
  have H₂ : Filter.Tendsto (c • ·) (𝓝 0 : Filter F) (𝓝 0) :=
    (continuous_const_smul c).tendsto' 0 _ (smul_zero _)
  

Proof state:
𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝¹⁷ : NormedField 𝕜₁
inst✝¹⁶ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
E' : Type u_4
F : Type u_5
F' : Type u_6
inst✝¹⁵ : AddCommGroup E
inst✝¹⁴ : Module 𝕜₁ E
inst✝¹³ : AddCommGroup E'
inst✝¹² : Module ℝ E'
inst✝¹¹ : AddCommGroup F
inst✝¹⁰ : Module 𝕜₂ F
inst✝⁹ : AddCommGroup F'
inst✝⁸ : Module ℝ F'
inst✝⁷ : TopologicalSpace E
inst✝⁶ : TopologicalSpace E'
M : Type u_7
inst✝⁵ : Monoid M
inst✝⁴ : DistribMulAction M F
inst✝³ : SMulCommClass 𝕜₂ M F
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousConstSMul M F
𝔖 : Set (Set E)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
this✝ : TopologicalSpace (E →SL[σ] F) := strongTopology σ F 𝔖
this : TopologicalAddGroup (E →SL[σ] F)
c : M
H₁ : Filter.HasBasis (𝓝 0) (fun SV => SV.1 ∈ 𝔖 ∧ SV.2 ∈ 𝓝 0) fun SV => {f | ∀ x ∈ SV.1, f x ∈ SV.2}
H₂ : Filter.Tendsto (fun x => c • x) (𝓝 0) (𝓝 0)
⊢ ContinuousAt (⇑(DistribSMul.toAddMonoidHom (E →SL[σ] F) c)) 0

Next tactic:
rw [ContinuousAt, map_zero, H₁.tendsto_iff H₁]