topology.algebra.module.locally_convex
β·
Mathlib.Topology.Algebra.Module.LocallyConvex
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -158,13 +158,13 @@ theorem Disjoint.exists_open_convexes [LocallyConvexSpace π E] {s t : Set E}
letI : UniformSpace E := TopologicalAddGroup.toUniformSpace E
haveI : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
have := (LocallyConvexSpace.convex_open_basis_zero π E).comap fun x : E Γ E => x.2 - x.1
- rw [β uniformity_eq_comap_nhds_zero] at this
+ rw [β uniformity_eq_comap_nhds_zero] at this
rcases disj.exists_uniform_thickening_of_basis this hsβ htβ with β¨V, β¨hV0, hVopen, hVconvexβ©, hVβ©
refine'
β¨s + V, t + V, hVopen.add_left, hVopen.add_left, hsβ.add hVconvex, htβ.add hVconvex,
subset_add_left _ hV0, subset_add_left _ hV0, _β©
simp_rw [β Union_add_left_image, image_add_left]
- simp_rw [UniformSpace.ball, β preimage_comp, sub_eq_neg_add] at hV
+ simp_rw [UniformSpace.ball, β preimage_comp, sub_eq_neg_add] at hV
exact hV
#align disjoint.exists_open_convexes Disjoint.exists_open_convexes
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2022 Anatole Dedecker. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anatole Dedecker
-/
-import Mathbin.Analysis.Convex.Topology
+import Analysis.Convex.Topology
#align_import topology.algebra.module.locally_convex from "leanprover-community/mathlib"@"4280f5f32e16755ec7985ce11e189b6cd6ff6735"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2022 Anatole Dedecker. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anatole Dedecker
-
-! This file was ported from Lean 3 source module topology.algebra.module.locally_convex
-! leanprover-community/mathlib commit 4280f5f32e16755ec7985ce11e189b6cd6ff6735
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Convex.Topology
+#align_import topology.algebra.module.locally_convex from "leanprover-community/mathlib"@"4280f5f32e16755ec7985ce11e189b6cd6ff6735"
+
/-!
# Locally convex topological modules
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -54,10 +54,12 @@ class LocallyConvexSpace (π E : Type _) [OrderedSemiring π] [AddCommMonoid
variable (π E : Type _) [OrderedSemiring π] [AddCommMonoid E] [Module π E] [TopologicalSpace E]
+#print locallyConvexSpace_iff /-
theorem locallyConvexSpace_iff :
LocallyConvexSpace π E β β x : E, (π x).HasBasis (fun s : Set E => s β π x β§ Convex π s) id :=
β¨@LocallyConvexSpace.convex_basis _ _ _ _ _ _, LocallyConvexSpace.mkβ©
#align locally_convex_space_iff locallyConvexSpace_iff
+-/
#print LocallyConvexSpace.ofBases /-
theorem LocallyConvexSpace.ofBases {ΞΉ : Type _} (b : E β ΞΉ β Set E) (p : E β ΞΉ β Prop)
@@ -71,15 +73,19 @@ theorem LocallyConvexSpace.ofBases {ΞΉ : Type _} (b : E β ΞΉ β Set E) (p : E
#align locally_convex_space.of_bases LocallyConvexSpace.ofBases
-/
+#print LocallyConvexSpace.convex_basis_zero /-
theorem LocallyConvexSpace.convex_basis_zero [LocallyConvexSpace π E] :
(π 0 : Filter E).HasBasis (fun s => s β (π 0 : Filter E) β§ Convex π s) id :=
LocallyConvexSpace.convex_basis 0
#align locally_convex_space.convex_basis_zero LocallyConvexSpace.convex_basis_zero
+-/
+#print locallyConvexSpace_iff_exists_convex_subset /-
theorem locallyConvexSpace_iff_exists_convex_subset :
LocallyConvexSpace π E β β x : E, β U β π x, β S β π x, Convex π S β§ S β U :=
(locallyConvexSpace_iff π E).trans (forall_congr' fun x => hasBasis_self)
#align locally_convex_space_iff_exists_convex_subset locallyConvexSpace_iff_exists_convex_subset
+-/
end Semimodule
@@ -88,6 +94,7 @@ section Module
variable (π E : Type _) [OrderedSemiring π] [AddCommGroup E] [Module π E] [TopologicalSpace E]
[TopologicalAddGroup E]
+#print LocallyConvexSpace.ofBasisZero /-
theorem LocallyConvexSpace.ofBasisZero {ΞΉ : Type _} (b : ΞΉ β Set E) (p : ΞΉ β Prop)
(hbasis : (π 0).HasBasis p b) (hconvex : β i, p i β Convex π (b i)) : LocallyConvexSpace π E :=
by
@@ -97,18 +104,23 @@ theorem LocallyConvexSpace.ofBasisZero {ΞΉ : Type _} (b : ΞΉ β Set E) (p : ΞΉ
rw [β map_add_left_nhds_zero]
exact hbasis.map _
#align locally_convex_space.of_basis_zero LocallyConvexSpace.ofBasisZero
+-/
+#print locallyConvexSpace_iff_zero /-
theorem locallyConvexSpace_iff_zero :
LocallyConvexSpace π E β
(π 0 : Filter E).HasBasis (fun s : Set E => s β (π 0 : Filter E) β§ Convex π s) id :=
β¨fun h => @LocallyConvexSpace.convex_basis _ _ _ _ _ _ h 0, fun h =>
LocallyConvexSpace.ofBasisZero π E _ _ h fun s => And.rightβ©
#align locally_convex_space_iff_zero locallyConvexSpace_iff_zero
+-/
+#print locallyConvexSpace_iff_exists_convex_subset_zero /-
theorem locallyConvexSpace_iff_exists_convex_subset_zero :
LocallyConvexSpace π E β β U β (π 0 : Filter E), β S β (π 0 : Filter E), Convex π S β§ S β U :=
(locallyConvexSpace_iff_zero π E).trans hasBasis_self
#align locally_convex_space_iff_exists_convex_subset_zero locallyConvexSpace_iff_exists_convex_subset_zero
+-/
#print LocallyConvexSpace.toLocallyConnectedSpace /-
-- see Note [lower instance priority]
@@ -126,6 +138,7 @@ section LinearOrderedField
variable (π E : Type _) [LinearOrderedField π] [AddCommGroup E] [Module π E] [TopologicalSpace E]
[TopologicalAddGroup E] [ContinuousConstSMul π E]
+#print LocallyConvexSpace.convex_open_basis_zero /-
theorem LocallyConvexSpace.convex_open_basis_zero [LocallyConvexSpace π E] :
(π 0 : Filter E).HasBasis (fun s => (0 : E) β s β§ IsOpen s β§ Convex π s) id :=
(LocallyConvexSpace.convex_basis_zero π E).to_hasBasis
@@ -134,9 +147,11 @@ theorem LocallyConvexSpace.convex_open_basis_zero [LocallyConvexSpace π E] :
interior_subsetβ©)
fun s hs => β¨s, β¨hs.2.1.mem_nhds hs.1, hs.2.2β©, subset_rflβ©
#align locally_convex_space.convex_open_basis_zero LocallyConvexSpace.convex_open_basis_zero
+-/
variable {π E}
+#print Disjoint.exists_open_convexes /-
/-- In a locally convex space, if `s`, `t` are disjoint convex sets, `s` is compact and `t` is
closed, then we can find open disjoint convex sets containing them. -/
theorem Disjoint.exists_open_convexes [LocallyConvexSpace π E] {s t : Set E} (disj : Disjoint s t)
@@ -155,6 +170,7 @@ theorem Disjoint.exists_open_convexes [LocallyConvexSpace π E] {s t : Set E}
simp_rw [UniformSpace.ball, β preimage_comp, sub_eq_neg_add] at hV
exact hV
#align disjoint.exists_open_convexes Disjoint.exists_open_convexes
+-/
end LinearOrderedField
@@ -163,6 +179,7 @@ section LatticeOps
variable {ΞΉ : Sort _} {π E F : Type _} [OrderedSemiring π] [AddCommMonoid E] [Module π E]
[AddCommMonoid F] [Module π F]
+#print locallyConvexSpace_sInf /-
theorem locallyConvexSpace_sInf {ts : Set (TopologicalSpace E)}
(h : β t β ts, @LocallyConvexSpace π E _ _ _ t) : @LocallyConvexSpace π E _ _ _ (sInf ts) :=
by
@@ -175,7 +192,9 @@ theorem locallyConvexSpace_sInf {ts : Set (TopologicalSpace E)}
rw [nhds_sInf, β iInf_subtype'']
exact has_basis_infi' fun i : ts => (@locallyConvexSpace_iff π E _ _ _ βi).mp (h (βi) i.2) x
#align locally_convex_space_Inf locallyConvexSpace_sInf
+-/
+#print locallyConvexSpace_iInf /-
theorem locallyConvexSpace_iInf {ts' : ΞΉ β TopologicalSpace E}
(h' : β i, @LocallyConvexSpace π E _ _ _ (ts' i)) :
@LocallyConvexSpace π E _ _ _ (β¨
i, ts' i) :=
@@ -183,12 +202,16 @@ theorem locallyConvexSpace_iInf {ts' : ΞΉ β TopologicalSpace E}
refine' locallyConvexSpace_sInf _
rwa [forall_range_iff]
#align locally_convex_space_infi locallyConvexSpace_iInf
+-/
+#print locallyConvexSpace_inf /-
theorem locallyConvexSpace_inf {tβ tβ : TopologicalSpace E} (hβ : @LocallyConvexSpace π E _ _ _ tβ)
(hβ : @LocallyConvexSpace π E _ _ _ tβ) : @LocallyConvexSpace π E _ _ _ (tβ β tβ) := by
rw [inf_eq_iInf]; refine' locallyConvexSpace_iInf fun b => _; cases b <;> assumption
#align locally_convex_space_inf locallyConvexSpace_inf
+-/
+#print locallyConvexSpace_induced /-
theorem locallyConvexSpace_induced {t : TopologicalSpace F} [LocallyConvexSpace π F]
(f : E ββ[π] F) : @LocallyConvexSpace π E _ _ _ (t.induced f) :=
by
@@ -200,6 +223,7 @@ theorem locallyConvexSpace_induced {t : TopologicalSpace F} [LocallyConvexSpace
rw [nhds_induced]
exact (LocallyConvexSpace.convex_basis <| f x).comap f
#align locally_convex_space_induced locallyConvexSpace_induced
+-/
instance {ΞΉ : Type _} {X : ΞΉ β Type _} [β i, AddCommMonoid (X i)] [β i, TopologicalSpace (X i)]
[β i, Module π (X i)] [β i, LocallyConvexSpace π (X i)] : LocallyConvexSpace π (β i, X i) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -47,7 +47,7 @@ section Semimodule
/-- A `locally_convex_space` is a topological semimodule over an ordered semiring in which convex
neighborhoods of a point form a neighborhood basis at that point. -/
class LocallyConvexSpace (π E : Type _) [OrderedSemiring π] [AddCommMonoid E] [Module π E]
- [TopologicalSpace E] : Prop where
+ [TopologicalSpace E] : Prop where
convex_basis : β x : E, (π x).HasBasis (fun s : Set E => s β π x β§ Convex π s) id
#align locally_convex_space LocallyConvexSpace
-/
@@ -146,13 +146,13 @@ theorem Disjoint.exists_open_convexes [LocallyConvexSpace π E] {s t : Set E}
letI : UniformSpace E := TopologicalAddGroup.toUniformSpace E
haveI : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
have := (LocallyConvexSpace.convex_open_basis_zero π E).comap fun x : E Γ E => x.2 - x.1
- rw [β uniformity_eq_comap_nhds_zero] at this
+ rw [β uniformity_eq_comap_nhds_zero] at this
rcases disj.exists_uniform_thickening_of_basis this hsβ htβ with β¨V, β¨hV0, hVopen, hVconvexβ©, hVβ©
refine'
β¨s + V, t + V, hVopen.add_left, hVopen.add_left, hsβ.add hVconvex, htβ.add hVconvex,
subset_add_left _ hV0, subset_add_left _ hV0, _β©
simp_rw [β Union_add_left_image, image_add_left]
- simp_rw [UniformSpace.ball, β preimage_comp, sub_eq_neg_add] at hV
+ simp_rw [UniformSpace.ball, β preimage_comp, sub_eq_neg_add] at hV
exact hV
#align disjoint.exists_open_convexes Disjoint.exists_open_convexes
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -39,7 +39,7 @@ In a module, this is equivalent to `0` satisfying such properties.
open TopologicalSpace Filter Set
-open Topology Pointwise
+open scoped Topology Pointwise
section Semimodule
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -54,12 +54,6 @@ class LocallyConvexSpace (π E : Type _) [OrderedSemiring π] [AddCommMonoid
variable (π E : Type _) [OrderedSemiring π] [AddCommMonoid E] [Module π E] [TopologicalSpace E]
-/- warning: locally_convex_space_iff -> locallyConvexSpace_iff is a dubious translation:
-lean 3 declaration is
- forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u2} E], Iff (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 _inst_4) (forall (x : E), Filter.HasBasis.{u2, succ u2} E (Set.{u2} E) (nhds.{u2} E _inst_4 x) (fun (s : Set.{u2} E) => And (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) s (nhds.{u2} E _inst_4 x)) (Convex.{u1, u2} π E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_3)))) s)) (id.{succ u2} (Set.{u2} E)))
-but is expected to have type
- forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u1} E], Iff (LocallyConvexSpace.{u2, u1} π E _inst_1 _inst_2 _inst_3 _inst_4) (forall (x : E), Filter.HasBasis.{u1, succ u1} E (Set.{u1} E) (nhds.{u1} E _inst_4 x) (fun (s : Set.{u1} E) => And (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) s (nhds.{u1} E _inst_4 x)) (Convex.{u2, u1} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3)))) s)) (id.{succ u1} (Set.{u1} E)))
-Case conversion may be inaccurate. Consider using '#align locally_convex_space_iff locallyConvexSpace_iffβ'. -/
theorem locallyConvexSpace_iff :
LocallyConvexSpace π E β β x : E, (π x).HasBasis (fun s : Set E => s β π x β§ Convex π s) id :=
β¨@LocallyConvexSpace.convex_basis _ _ _ _ _ _, LocallyConvexSpace.mkβ©
@@ -77,23 +71,11 @@ theorem LocallyConvexSpace.ofBases {ΞΉ : Type _} (b : E β ΞΉ β Set E) (p : E
#align locally_convex_space.of_bases LocallyConvexSpace.ofBases
-/
-/- warning: locally_convex_space.convex_basis_zero -> LocallyConvexSpace.convex_basis_zero is a dubious translation:
-lean 3 declaration is
- forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 _inst_4], Filter.HasBasis.{u2, succ u2} E (Set.{u2} E) (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))))) (fun (s : Set.{u2} E) => And (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) s (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))))))) (Convex.{u1, u2} π E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_3)))) s)) (id.{succ u2} (Set.{u2} E))
-but is expected to have type
- forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u1} E] [_inst_5 : LocallyConvexSpace.{u2, u1} π E _inst_1 _inst_2 _inst_3 _inst_4], Filter.HasBasis.{u1, succ u1} E (Set.{u1} E) (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))))) (fun (s : Set.{u1} E) => And (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) s (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))))) (Convex.{u2, u1} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3)))) s)) (id.{succ u1} (Set.{u1} E))
-Case conversion may be inaccurate. Consider using '#align locally_convex_space.convex_basis_zero LocallyConvexSpace.convex_basis_zeroβ'. -/
theorem LocallyConvexSpace.convex_basis_zero [LocallyConvexSpace π E] :
(π 0 : Filter E).HasBasis (fun s => s β (π 0 : Filter E) β§ Convex π s) id :=
LocallyConvexSpace.convex_basis 0
#align locally_convex_space.convex_basis_zero LocallyConvexSpace.convex_basis_zero
-/- warning: locally_convex_space_iff_exists_convex_subset -> locallyConvexSpace_iff_exists_convex_subset is a dubious translation:
-lean 3 declaration is
- forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u2} E], Iff (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 _inst_4) (forall (x : E) (U : Set.{u2} E), (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) U (nhds.{u2} E _inst_4 x)) -> (Exists.{succ u2} (Set.{u2} E) (fun (S : Set.{u2} E) => Exists.{0} (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) S (nhds.{u2} E _inst_4 x)) (fun (H : Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) S (nhds.{u2} E _inst_4 x)) => And (Convex.{u1, u2} π E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_3)))) S) (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) S U)))))
-but is expected to have type
- forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u1} E], Iff (LocallyConvexSpace.{u2, u1} π E _inst_1 _inst_2 _inst_3 _inst_4) (forall (x : E) (U : Set.{u1} E), (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) U (nhds.{u1} E _inst_4 x)) -> (Exists.{succ u1} (Set.{u1} E) (fun (S : Set.{u1} E) => And (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) S (nhds.{u1} E _inst_4 x)) (And (Convex.{u2, u1} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3)))) S) (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) S U)))))
-Case conversion may be inaccurate. Consider using '#align locally_convex_space_iff_exists_convex_subset locallyConvexSpace_iff_exists_convex_subsetβ'. -/
theorem locallyConvexSpace_iff_exists_convex_subset :
LocallyConvexSpace π E β β x : E, β U β π x, β S β π x, Convex π S β§ S β U :=
(locallyConvexSpace_iff π E).trans (forall_congr' fun x => hasBasis_self)
@@ -106,12 +88,6 @@ section Module
variable (π E : Type _) [OrderedSemiring π] [AddCommGroup E] [Module π E] [TopologicalSpace E]
[TopologicalAddGroup E]
-/- warning: locally_convex_space.of_basis_zero -> LocallyConvexSpace.ofBasisZero is a dubious translation:
-lean 3 declaration is
- forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)] {ΞΉ : Type.{u3}} (b : ΞΉ -> (Set.{u2} E)) (p : ΞΉ -> Prop), (Filter.HasBasis.{u2, succ u3} E ΞΉ (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2))))))))) p b) -> (forall (i : ΞΉ), (p i) -> (Convex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (b i))) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4)
-but is expected to have type
- forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)] {ΞΉ : Type.{u3}} (b : ΞΉ -> (Set.{u2} E)) (p : ΞΉ -> Prop), (Filter.HasBasis.{u2, succ u3} E ΞΉ (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (Zero.toOfNat0.{u2} E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2)))))))) p b) -> (forall (i : ΞΉ), (p i) -> (Convex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u1, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} π E (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (b i))) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4)
-Case conversion may be inaccurate. Consider using '#align locally_convex_space.of_basis_zero LocallyConvexSpace.ofBasisZeroβ'. -/
theorem LocallyConvexSpace.ofBasisZero {ΞΉ : Type _} (b : ΞΉ β Set E) (p : ΞΉ β Prop)
(hbasis : (π 0).HasBasis p b) (hconvex : β i, p i β Convex π (b i)) : LocallyConvexSpace π E :=
by
@@ -122,12 +98,6 @@ theorem LocallyConvexSpace.ofBasisZero {ΞΉ : Type _} (b : ΞΉ β Set E) (p : ΞΉ
exact hbasis.map _
#align locally_convex_space.of_basis_zero LocallyConvexSpace.ofBasisZero
-/- warning: locally_convex_space_iff_zero -> locallyConvexSpace_iff_zero is a dubious translation:
-lean 3 declaration is
- forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)], Iff (LocallyConvexSpace.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4) (Filter.HasBasis.{u2, succ u2} E (Set.{u2} E) (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2))))))))) (fun (s : Set.{u2} E) => And (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) s (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))))) (Convex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) s)) (id.{succ u2} (Set.{u2} E)))
-but is expected to have type
- forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : TopologicalSpace.{u1} E] [_inst_5 : TopologicalAddGroup.{u1} E _inst_4 (AddCommGroup.toAddGroup.{u1} E _inst_2)], Iff (LocallyConvexSpace.{u2, u1} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3 _inst_4) (Filter.HasBasis.{u1, succ u1} E (Set.{u1} E) (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2)))))))) (fun (s : Set.{u1} E) => And (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) s (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))))) (Convex.{u2, u1} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s)) (id.{succ u1} (Set.{u1} E)))
-Case conversion may be inaccurate. Consider using '#align locally_convex_space_iff_zero locallyConvexSpace_iff_zeroβ'. -/
theorem locallyConvexSpace_iff_zero :
LocallyConvexSpace π E β
(π 0 : Filter E).HasBasis (fun s : Set E => s β (π 0 : Filter E) β§ Convex π s) id :=
@@ -135,12 +105,6 @@ theorem locallyConvexSpace_iff_zero :
LocallyConvexSpace.ofBasisZero π E _ _ h fun s => And.rightβ©
#align locally_convex_space_iff_zero locallyConvexSpace_iff_zero
-/- warning: locally_convex_space_iff_exists_convex_subset_zero -> locallyConvexSpace_iff_exists_convex_subset_zero is a dubious translation:
-lean 3 declaration is
- forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)], Iff (LocallyConvexSpace.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4) (forall (U : Set.{u2} E), (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) U (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))))) -> (Exists.{succ u2} (Set.{u2} E) (fun (S : Set.{u2} E) => Exists.{0} (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) S (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))))) (fun (H : Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) S (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))))) => And (Convex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) S) (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) S U)))))
-but is expected to have type
- forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : TopologicalSpace.{u1} E] [_inst_5 : TopologicalAddGroup.{u1} E _inst_4 (AddCommGroup.toAddGroup.{u1} E _inst_2)], Iff (LocallyConvexSpace.{u2, u1} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3 _inst_4) (forall (U : Set.{u1} E), (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) U (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))))) -> (Exists.{succ u1} (Set.{u1} E) (fun (S : Set.{u1} E) => And (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) S (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))))) (And (Convex.{u2, u1} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) S) (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) S U)))))
-Case conversion may be inaccurate. Consider using '#align locally_convex_space_iff_exists_convex_subset_zero locallyConvexSpace_iff_exists_convex_subset_zeroβ'. -/
theorem locallyConvexSpace_iff_exists_convex_subset_zero :
LocallyConvexSpace π E β β U β (π 0 : Filter E), β S β (π 0 : Filter E), Convex π S β§ S β U :=
(locallyConvexSpace_iff_zero π E).trans hasBasis_self
@@ -162,9 +126,6 @@ section LinearOrderedField
variable (π E : Type _) [LinearOrderedField π] [AddCommGroup E] [Module π E] [TopologicalSpace E]
[TopologicalAddGroup E] [ContinuousConstSMul π E]
-/- warning: locally_convex_space.convex_open_basis_zero -> LocallyConvexSpace.convex_open_basis_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align locally_convex_space.convex_open_basis_zero LocallyConvexSpace.convex_open_basis_zeroβ'. -/
theorem LocallyConvexSpace.convex_open_basis_zero [LocallyConvexSpace π E] :
(π 0 : Filter E).HasBasis (fun s => (0 : E) β s β§ IsOpen s β§ Convex π s) id :=
(LocallyConvexSpace.convex_basis_zero π E).to_hasBasis
@@ -176,9 +137,6 @@ theorem LocallyConvexSpace.convex_open_basis_zero [LocallyConvexSpace π E] :
variable {π E}
-/- warning: disjoint.exists_open_convexes -> Disjoint.exists_open_convexes is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align disjoint.exists_open_convexes Disjoint.exists_open_convexesβ'. -/
/-- In a locally convex space, if `s`, `t` are disjoint convex sets, `s` is compact and `t` is
closed, then we can find open disjoint convex sets containing them. -/
theorem Disjoint.exists_open_convexes [LocallyConvexSpace π E] {s t : Set E} (disj : Disjoint s t)
@@ -205,12 +163,6 @@ section LatticeOps
variable {ΞΉ : Sort _} {π E F : Type _} [OrderedSemiring π] [AddCommMonoid E] [Module π E]
[AddCommMonoid F] [Module π F]
-/- warning: locally_convex_space_Inf -> locallyConvexSpace_sInf is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] {ts : Set.{u2} (TopologicalSpace.{u2} E)}, (forall (t : TopologicalSpace.{u2} E), (Membership.Mem.{u2, u2} (TopologicalSpace.{u2} E) (Set.{u2} (TopologicalSpace.{u2} E)) (Set.hasMem.{u2} (TopologicalSpace.{u2} E)) t ts) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 t)) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (InfSet.sInf.{u2} (TopologicalSpace.{u2} E) (ConditionallyCompleteLattice.toHasInf.{u2} (TopologicalSpace.{u2} E) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} E) (TopologicalSpace.completeLattice.{u2} E))) ts))
-but is expected to have type
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] {ts : Set.{u2} (TopologicalSpace.{u2} E)}, (forall (t : TopologicalSpace.{u2} E), (Membership.mem.{u2, u2} (TopologicalSpace.{u2} E) (Set.{u2} (TopologicalSpace.{u2} E)) (Set.instMembershipSet.{u2} (TopologicalSpace.{u2} E)) t ts) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 t)) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (InfSet.sInf.{u2} (TopologicalSpace.{u2} E) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} E) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} E) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} E))) ts))
-Case conversion may be inaccurate. Consider using '#align locally_convex_space_Inf locallyConvexSpace_sInfβ'. -/
theorem locallyConvexSpace_sInf {ts : Set (TopologicalSpace E)}
(h : β t β ts, @LocallyConvexSpace π E _ _ _ t) : @LocallyConvexSpace π E _ _ _ (sInf ts) :=
by
@@ -224,12 +176,6 @@ theorem locallyConvexSpace_sInf {ts : Set (TopologicalSpace E)}
exact has_basis_infi' fun i : ts => (@locallyConvexSpace_iff π E _ _ _ βi).mp (h (βi) i.2) x
#align locally_convex_space_Inf locallyConvexSpace_sInf
-/- warning: locally_convex_space_infi -> locallyConvexSpace_iInf is a dubious translation:
-lean 3 declaration is
- forall {ΞΉ : Sort.{u1}} {π : Type.{u2}} {E : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u3} E] [_inst_3 : Module.{u2, u3} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] {ts' : ΞΉ -> (TopologicalSpace.{u3} E)}, (forall (i : ΞΉ), LocallyConvexSpace.{u2, u3} π E _inst_1 _inst_2 _inst_3 (ts' i)) -> (LocallyConvexSpace.{u2, u3} π E _inst_1 _inst_2 _inst_3 (iInf.{u3, u1} (TopologicalSpace.{u3} E) (ConditionallyCompleteLattice.toHasInf.{u3} (TopologicalSpace.{u3} E) (CompleteLattice.toConditionallyCompleteLattice.{u3} (TopologicalSpace.{u3} E) (TopologicalSpace.completeLattice.{u3} E))) ΞΉ (fun (i : ΞΉ) => ts' i)))
-but is expected to have type
- forall {ΞΉ : Sort.{u1}} {π : Type.{u2}} {E : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u3} E] [_inst_3 : Module.{u2, u3} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] {ts' : ΞΉ -> (TopologicalSpace.{u3} E)}, (forall (i : ΞΉ), LocallyConvexSpace.{u2, u3} π E _inst_1 _inst_2 _inst_3 (ts' i)) -> (LocallyConvexSpace.{u2, u3} π E _inst_1 _inst_2 _inst_3 (iInf.{u3, u1} (TopologicalSpace.{u3} E) (ConditionallyCompleteLattice.toInfSet.{u3} (TopologicalSpace.{u3} E) (CompleteLattice.toConditionallyCompleteLattice.{u3} (TopologicalSpace.{u3} E) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u3} E))) ΞΉ (fun (i : ΞΉ) => ts' i)))
-Case conversion may be inaccurate. Consider using '#align locally_convex_space_infi locallyConvexSpace_iInfβ'. -/
theorem locallyConvexSpace_iInf {ts' : ΞΉ β TopologicalSpace E}
(h' : β i, @LocallyConvexSpace π E _ _ _ (ts' i)) :
@LocallyConvexSpace π E _ _ _ (β¨
i, ts' i) :=
@@ -238,23 +184,11 @@ theorem locallyConvexSpace_iInf {ts' : ΞΉ β TopologicalSpace E}
rwa [forall_range_iff]
#align locally_convex_space_infi locallyConvexSpace_iInf
-/- warning: locally_convex_space_inf -> locallyConvexSpace_inf is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] {tβ : TopologicalSpace.{u2} E} {tβ : TopologicalSpace.{u2} E}, (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 tβ) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 tβ) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (Inf.inf.{u2} (TopologicalSpace.{u2} E) (SemilatticeInf.toHasInf.{u2} (TopologicalSpace.{u2} E) (Lattice.toSemilatticeInf.{u2} (TopologicalSpace.{u2} E) (ConditionallyCompleteLattice.toLattice.{u2} (TopologicalSpace.{u2} E) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} E) (TopologicalSpace.completeLattice.{u2} E))))) tβ tβ))
-but is expected to have type
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] {tβ : TopologicalSpace.{u2} E} {tβ : TopologicalSpace.{u2} E}, (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 tβ) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 tβ) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (Inf.inf.{u2} (TopologicalSpace.{u2} E) (Lattice.toInf.{u2} (TopologicalSpace.{u2} E) (ConditionallyCompleteLattice.toLattice.{u2} (TopologicalSpace.{u2} E) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} E) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} E)))) tβ tβ))
-Case conversion may be inaccurate. Consider using '#align locally_convex_space_inf locallyConvexSpace_infβ'. -/
theorem locallyConvexSpace_inf {tβ tβ : TopologicalSpace E} (hβ : @LocallyConvexSpace π E _ _ _ tβ)
(hβ : @LocallyConvexSpace π E _ _ _ tβ) : @LocallyConvexSpace π E _ _ _ (tβ β tβ) := by
rw [inf_eq_iInf]; refine' locallyConvexSpace_iInf fun b => _; cases b <;> assumption
#align locally_convex_space_inf locallyConvexSpace_inf
-/- warning: locally_convex_space_induced -> locallyConvexSpace_induced is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] [_inst_4 : AddCommMonoid.{u3} F] [_inst_5 : Module.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_4] {t : TopologicalSpace.{u3} F} [_inst_6 : LocallyConvexSpace.{u1, u3} π F _inst_1 _inst_4 _inst_5 t] (f : LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5), LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (TopologicalSpace.induced.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π π E F (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))) f) t)
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_4 : AddCommMonoid.{u3} F] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_4] {t : TopologicalSpace.{u3} F} [_inst_6 : LocallyConvexSpace.{u2, u3} π F _inst_1 _inst_4 _inst_5 t] (f : LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5), LocallyConvexSpace.{u2, u1} π E _inst_1 _inst_2 _inst_3 (TopologicalSpace.induced.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f) t)
-Case conversion may be inaccurate. Consider using '#align locally_convex_space_induced locallyConvexSpace_inducedβ'. -/
theorem locallyConvexSpace_induced {t : TopologicalSpace F} [LocallyConvexSpace π F]
(f : E ββ[π] F) : @LocallyConvexSpace π E _ _ _ (t.induced f) :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -245,11 +245,8 @@ but is expected to have type
forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] {tβ : TopologicalSpace.{u2} E} {tβ : TopologicalSpace.{u2} E}, (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 tβ) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 tβ) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (Inf.inf.{u2} (TopologicalSpace.{u2} E) (Lattice.toInf.{u2} (TopologicalSpace.{u2} E) (ConditionallyCompleteLattice.toLattice.{u2} (TopologicalSpace.{u2} E) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} E) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} E)))) tβ tβ))
Case conversion may be inaccurate. Consider using '#align locally_convex_space_inf locallyConvexSpace_infβ'. -/
theorem locallyConvexSpace_inf {tβ tβ : TopologicalSpace E} (hβ : @LocallyConvexSpace π E _ _ _ tβ)
- (hβ : @LocallyConvexSpace π E _ _ _ tβ) : @LocallyConvexSpace π E _ _ _ (tβ β tβ) :=
- by
- rw [inf_eq_iInf]
- refine' locallyConvexSpace_iInf fun b => _
- cases b <;> assumption
+ (hβ : @LocallyConvexSpace π E _ _ _ tβ) : @LocallyConvexSpace π E _ _ _ (tβ β tβ) := by
+ rw [inf_eq_iInf]; refine' locallyConvexSpace_iInf fun b => _; cases b <;> assumption
#align locally_convex_space_inf locallyConvexSpace_inf
/- warning: locally_convex_space_induced -> locallyConvexSpace_induced is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -163,10 +163,7 @@ variable (π E : Type _) [LinearOrderedField π] [AddCommGroup E] [Module
[TopologicalAddGroup E] [ContinuousConstSMul π E]
/- warning: locally_convex_space.convex_open_basis_zero -> LocallyConvexSpace.convex_open_basis_zero is a dubious translation:
-lean 3 declaration is
- forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)] [_inst_6 : ContinuousConstSMul.{u1, u2} π E _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))] [_inst_7 : LocallyConvexSpace.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4], Filter.HasBasis.{u2, succ u2} E (Set.{u2} E) (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2))))))))) (fun (s : Set.{u2} E) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) (And (IsOpen.{u2} E _inst_4 s) (Convex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) s))) (id.{succ u2} (Set.{u2} E))
-but is expected to have type
- forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : TopologicalSpace.{u1} E] [_inst_5 : TopologicalAddGroup.{u1} E _inst_4 (AddCommGroup.toAddGroup.{u1} E _inst_2)] [_inst_6 : ContinuousConstSMul.{u2, u1} π E _inst_4 (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3))))] [_inst_7 : LocallyConvexSpace.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3 _inst_4], Filter.HasBasis.{u1, succ u1} E (Set.{u1} E) (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2)))))))) (fun (s : Set.{u1} E) => And (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) (And (IsOpen.{u1} E _inst_4 s) (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s))) (id.{succ u1} (Set.{u1} E))
+<too large>
Case conversion may be inaccurate. Consider using '#align locally_convex_space.convex_open_basis_zero LocallyConvexSpace.convex_open_basis_zeroβ'. -/
theorem LocallyConvexSpace.convex_open_basis_zero [LocallyConvexSpace π E] :
(π 0 : Filter E).HasBasis (fun s => (0 : E) β s β§ IsOpen s β§ Convex π s) id :=
@@ -180,10 +177,7 @@ theorem LocallyConvexSpace.convex_open_basis_zero [LocallyConvexSpace π E] :
variable {π E}
/- warning: disjoint.exists_open_convexes -> Disjoint.exists_open_convexes is a dubious translation:
-lean 3 declaration is
- forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)] [_inst_6 : ContinuousConstSMul.{u1, u2} π E _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))] [_inst_7 : LocallyConvexSpace.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4] {s : Set.{u2} E} {t : Set.{u2} E}, (Disjoint.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} E) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} E) (Set.booleanAlgebra.{u2} E))) s t) -> (Convex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) s) -> (IsCompact.{u2} E _inst_4 s) -> (Convex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) t) -> (IsClosed.{u2} E _inst_4 t) -> (Exists.{succ u2} (Set.{u2} E) (fun (u : Set.{u2} E) => Exists.{succ u2} (Set.{u2} E) (fun (v : Set.{u2} E) => And (IsOpen.{u2} E _inst_4 u) (And (IsOpen.{u2} E _inst_4 v) (And (Convex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) u) (And (Convex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) v) (And (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s u) (And (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) t v) (Disjoint.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} E) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} E) (Set.booleanAlgebra.{u2} E))) u v)))))))))
-but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : TopologicalSpace.{u1} E] [_inst_5 : TopologicalAddGroup.{u1} E _inst_4 (AddCommGroup.toAddGroup.{u1} E _inst_2)] [_inst_6 : ContinuousConstSMul.{u2, u1} π E _inst_4 (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3))))] [_inst_7 : LocallyConvexSpace.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3 _inst_4] {s : Set.{u1} E} {t : Set.{u1} E}, (Disjoint.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} E) (Preorder.toLE.{u1} (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))) s t) -> (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s) -> (IsCompact.{u1} E _inst_4 s) -> (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) t) -> (IsClosed.{u1} E _inst_4 t) -> (Exists.{succ u1} (Set.{u1} E) (fun (u : Set.{u1} E) => Exists.{succ u1} (Set.{u1} E) (fun (v : Set.{u1} E) => And (IsOpen.{u1} E _inst_4 u) (And (IsOpen.{u1} E _inst_4 v) (And (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) u) (And (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) v) (And (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) s u) (And (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) t v) (Disjoint.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} E) (Preorder.toLE.{u1} (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))) u v)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align disjoint.exists_open_convexes Disjoint.exists_open_convexesβ'. -/
/-- In a locally convex space, if `s`, `t` are disjoint convex sets, `s` is compact and `t` is
closed, then we can find open disjoint convex sets containing them. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -262,7 +262,7 @@ theorem locallyConvexSpace_inf {tβ tβ : TopologicalSpace E} (hβ : @Locally
lean 3 declaration is
forall {π : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] [_inst_4 : AddCommMonoid.{u3} F] [_inst_5 : Module.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_4] {t : TopologicalSpace.{u3} F} [_inst_6 : LocallyConvexSpace.{u1, u3} π F _inst_1 _inst_4 _inst_5 t] (f : LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5), LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (TopologicalSpace.induced.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π π E F (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))) f) t)
but is expected to have type
- forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_4 : AddCommMonoid.{u3} F] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_4] {t : TopologicalSpace.{u3} F} [_inst_6 : LocallyConvexSpace.{u2, u3} π F _inst_1 _inst_4 _inst_5 t] (f : LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5), LocallyConvexSpace.{u2, u1} π E _inst_1 _inst_2 _inst_3 (TopologicalSpace.induced.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f) t)
+ forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_4 : AddCommMonoid.{u3} F] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_4] {t : TopologicalSpace.{u3} F} [_inst_6 : LocallyConvexSpace.{u2, u3} π F _inst_1 _inst_4 _inst_5 t] (f : LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5), LocallyConvexSpace.{u2, u1} π E _inst_1 _inst_2 _inst_3 (TopologicalSpace.induced.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f) t)
Case conversion may be inaccurate. Consider using '#align locally_convex_space_induced locallyConvexSpace_inducedβ'. -/
theorem locallyConvexSpace_induced {t : TopologicalSpace F} [LocallyConvexSpace π F]
(f : E ββ[π] F) : @LocallyConvexSpace π E _ _ _ (t.induced f) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anatole Dedecker
! This file was ported from Lean 3 source module topology.algebra.module.locally_convex
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit 4280f5f32e16755ec7985ce11e189b6cd6ff6735
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.Analysis.Convex.Topology
/-!
# Locally convex topological modules
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
A `locally_convex_space` is a topological semimodule over an ordered semiring in which any point
admits a neighborhood basis made of convex sets, or equivalently, in which convex neighborhoods of
a point form a neighborhood basis at that point.
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -40,20 +40,29 @@ open Topology Pointwise
section Semimodule
+#print LocallyConvexSpace /-
/-- A `locally_convex_space` is a topological semimodule over an ordered semiring in which convex
neighborhoods of a point form a neighborhood basis at that point. -/
class LocallyConvexSpace (π E : Type _) [OrderedSemiring π] [AddCommMonoid E] [Module π E]
[TopologicalSpace E] : Prop where
convex_basis : β x : E, (π x).HasBasis (fun s : Set E => s β π x β§ Convex π s) id
#align locally_convex_space LocallyConvexSpace
+-/
variable (π E : Type _) [OrderedSemiring π] [AddCommMonoid E] [Module π E] [TopologicalSpace E]
+/- warning: locally_convex_space_iff -> locallyConvexSpace_iff is a dubious translation:
+lean 3 declaration is
+ forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u2} E], Iff (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 _inst_4) (forall (x : E), Filter.HasBasis.{u2, succ u2} E (Set.{u2} E) (nhds.{u2} E _inst_4 x) (fun (s : Set.{u2} E) => And (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) s (nhds.{u2} E _inst_4 x)) (Convex.{u1, u2} π E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_3)))) s)) (id.{succ u2} (Set.{u2} E)))
+but is expected to have type
+ forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u1} E], Iff (LocallyConvexSpace.{u2, u1} π E _inst_1 _inst_2 _inst_3 _inst_4) (forall (x : E), Filter.HasBasis.{u1, succ u1} E (Set.{u1} E) (nhds.{u1} E _inst_4 x) (fun (s : Set.{u1} E) => And (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) s (nhds.{u1} E _inst_4 x)) (Convex.{u2, u1} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3)))) s)) (id.{succ u1} (Set.{u1} E)))
+Case conversion may be inaccurate. Consider using '#align locally_convex_space_iff locallyConvexSpace_iffβ'. -/
theorem locallyConvexSpace_iff :
LocallyConvexSpace π E β β x : E, (π x).HasBasis (fun s : Set E => s β π x β§ Convex π s) id :=
β¨@LocallyConvexSpace.convex_basis _ _ _ _ _ _, LocallyConvexSpace.mkβ©
#align locally_convex_space_iff locallyConvexSpace_iff
+#print LocallyConvexSpace.ofBases /-
theorem LocallyConvexSpace.ofBases {ΞΉ : Type _} (b : E β ΞΉ β Set E) (p : E β ΞΉ β Prop)
(hbasis : β x : E, (π x).HasBasis (p x) (b x)) (hconvex : β x i, p x i β Convex π (b x i)) :
LocallyConvexSpace π E :=
@@ -63,12 +72,25 @@ theorem LocallyConvexSpace.ofBases {ΞΉ : Type _} (b : E β ΞΉ β Set E) (p : E
fun s hs =>
β¨(hbasis x).index s hs.1, β¨(hbasis x).property_index hs.1, (hbasis x).set_index_subset hs.1β©β©β©
#align locally_convex_space.of_bases LocallyConvexSpace.ofBases
+-/
+/- warning: locally_convex_space.convex_basis_zero -> LocallyConvexSpace.convex_basis_zero is a dubious translation:
+lean 3 declaration is
+ forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 _inst_4], Filter.HasBasis.{u2, succ u2} E (Set.{u2} E) (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))))))) (fun (s : Set.{u2} E) => And (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) s (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))))))) (Convex.{u1, u2} π E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_3)))) s)) (id.{succ u2} (Set.{u2} E))
+but is expected to have type
+ forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u1} E] [_inst_5 : LocallyConvexSpace.{u2, u1} π E _inst_1 _inst_2 _inst_3 _inst_4], Filter.HasBasis.{u1, succ u1} E (Set.{u1} E) (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2))))) (fun (s : Set.{u1} E) => And (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) s (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)))))) (Convex.{u2, u1} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3)))) s)) (id.{succ u1} (Set.{u1} E))
+Case conversion may be inaccurate. Consider using '#align locally_convex_space.convex_basis_zero LocallyConvexSpace.convex_basis_zeroβ'. -/
theorem LocallyConvexSpace.convex_basis_zero [LocallyConvexSpace π E] :
(π 0 : Filter E).HasBasis (fun s => s β (π 0 : Filter E) β§ Convex π s) id :=
LocallyConvexSpace.convex_basis 0
#align locally_convex_space.convex_basis_zero LocallyConvexSpace.convex_basis_zero
+/- warning: locally_convex_space_iff_exists_convex_subset -> locallyConvexSpace_iff_exists_convex_subset is a dubious translation:
+lean 3 declaration is
+ forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u2} E], Iff (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 _inst_4) (forall (x : E) (U : Set.{u2} E), (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) U (nhds.{u2} E _inst_4 x)) -> (Exists.{succ u2} (Set.{u2} E) (fun (S : Set.{u2} E) => Exists.{0} (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) S (nhds.{u2} E _inst_4 x)) (fun (H : Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) S (nhds.{u2} E _inst_4 x)) => And (Convex.{u1, u2} π E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_3)))) S) (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) S U)))))
+but is expected to have type
+ forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_4 : TopologicalSpace.{u1} E], Iff (LocallyConvexSpace.{u2, u1} π E _inst_1 _inst_2 _inst_3 _inst_4) (forall (x : E) (U : Set.{u1} E), (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) U (nhds.{u1} E _inst_4 x)) -> (Exists.{succ u1} (Set.{u1} E) (fun (S : Set.{u1} E) => And (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) S (nhds.{u1} E _inst_4 x)) (And (Convex.{u2, u1} π E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} π E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_3)))) S) (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) S U)))))
+Case conversion may be inaccurate. Consider using '#align locally_convex_space_iff_exists_convex_subset locallyConvexSpace_iff_exists_convex_subsetβ'. -/
theorem locallyConvexSpace_iff_exists_convex_subset :
LocallyConvexSpace π E β β x : E, β U β π x, β S β π x, Convex π S β§ S β U :=
(locallyConvexSpace_iff π E).trans (forall_congr' fun x => hasBasis_self)
@@ -81,6 +103,12 @@ section Module
variable (π E : Type _) [OrderedSemiring π] [AddCommGroup E] [Module π E] [TopologicalSpace E]
[TopologicalAddGroup E]
+/- warning: locally_convex_space.of_basis_zero -> LocallyConvexSpace.ofBasisZero is a dubious translation:
+lean 3 declaration is
+ forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)] {ΞΉ : Type.{u3}} (b : ΞΉ -> (Set.{u2} E)) (p : ΞΉ -> Prop), (Filter.HasBasis.{u2, succ u3} E ΞΉ (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2))))))))) p b) -> (forall (i : ΞΉ), (p i) -> (Convex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (b i))) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4)
+but is expected to have type
+ forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)] {ΞΉ : Type.{u3}} (b : ΞΉ -> (Set.{u2} E)) (p : ΞΉ -> Prop), (Filter.HasBasis.{u2, succ u3} E ΞΉ (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (Zero.toOfNat0.{u2} E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2)))))))) p b) -> (forall (i : ΞΉ), (p i) -> (Convex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toSMul.{u1, u2} π E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} π E (MonoidWithZero.toZero.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E _inst_2))))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) (b i))) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4)
+Case conversion may be inaccurate. Consider using '#align locally_convex_space.of_basis_zero LocallyConvexSpace.ofBasisZeroβ'. -/
theorem LocallyConvexSpace.ofBasisZero {ΞΉ : Type _} (b : ΞΉ β Set E) (p : ΞΉ β Prop)
(hbasis : (π 0).HasBasis p b) (hconvex : β i, p i β Convex π (b i)) : LocallyConvexSpace π E :=
by
@@ -91,6 +119,12 @@ theorem LocallyConvexSpace.ofBasisZero {ΞΉ : Type _} (b : ΞΉ β Set E) (p : ΞΉ
exact hbasis.map _
#align locally_convex_space.of_basis_zero LocallyConvexSpace.ofBasisZero
+/- warning: locally_convex_space_iff_zero -> locallyConvexSpace_iff_zero is a dubious translation:
+lean 3 declaration is
+ forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)], Iff (LocallyConvexSpace.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4) (Filter.HasBasis.{u2, succ u2} E (Set.{u2} E) (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2))))))))) (fun (s : Set.{u2} E) => And (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) s (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))))) (Convex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) s)) (id.{succ u2} (Set.{u2} E)))
+but is expected to have type
+ forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : TopologicalSpace.{u1} E] [_inst_5 : TopologicalAddGroup.{u1} E _inst_4 (AddCommGroup.toAddGroup.{u1} E _inst_2)], Iff (LocallyConvexSpace.{u2, u1} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3 _inst_4) (Filter.HasBasis.{u1, succ u1} E (Set.{u1} E) (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2)))))))) (fun (s : Set.{u1} E) => And (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) s (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))))) (Convex.{u2, u1} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s)) (id.{succ u1} (Set.{u1} E)))
+Case conversion may be inaccurate. Consider using '#align locally_convex_space_iff_zero locallyConvexSpace_iff_zeroβ'. -/
theorem locallyConvexSpace_iff_zero :
LocallyConvexSpace π E β
(π 0 : Filter E).HasBasis (fun s : Set E => s β (π 0 : Filter E) β§ Convex π s) id :=
@@ -98,17 +132,25 @@ theorem locallyConvexSpace_iff_zero :
LocallyConvexSpace.ofBasisZero π E _ _ h fun s => And.rightβ©
#align locally_convex_space_iff_zero locallyConvexSpace_iff_zero
+/- warning: locally_convex_space_iff_exists_convex_subset_zero -> locallyConvexSpace_iff_exists_convex_subset_zero is a dubious translation:
+lean 3 declaration is
+ forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)], Iff (LocallyConvexSpace.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4) (forall (U : Set.{u2} E), (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) U (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))))) -> (Exists.{succ u2} (Set.{u2} E) (fun (S : Set.{u2} E) => Exists.{0} (Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) S (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))))) (fun (H : Membership.Mem.{u2, u2} (Set.{u2} E) (Filter.{u2} E) (Filter.hasMem.{u2} E) S (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))))) => And (Convex.{u1, u2} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) S) (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) S U)))))
+but is expected to have type
+ forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : TopologicalSpace.{u1} E] [_inst_5 : TopologicalAddGroup.{u1} E _inst_4 (AddCommGroup.toAddGroup.{u1} E _inst_2)], Iff (LocallyConvexSpace.{u2, u1} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3 _inst_4) (forall (U : Set.{u1} E), (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) U (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))))) -> (Exists.{succ u1} (Set.{u1} E) (fun (S : Set.{u1} E) => And (Membership.mem.{u1, u1} (Set.{u1} E) (Filter.{u1} E) (instMembershipSetFilter.{u1} E) S (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))))) (And (Convex.{u2, u1} π E _inst_1 (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (MonoidWithZero.toZero.{u2} π (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) S) (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) S U)))))
+Case conversion may be inaccurate. Consider using '#align locally_convex_space_iff_exists_convex_subset_zero locallyConvexSpace_iff_exists_convex_subset_zeroβ'. -/
theorem locallyConvexSpace_iff_exists_convex_subset_zero :
LocallyConvexSpace π E β β U β (π 0 : Filter E), β S β (π 0 : Filter E), Convex π S β§ S β U :=
(locallyConvexSpace_iff_zero π E).trans hasBasis_self
#align locally_convex_space_iff_exists_convex_subset_zero locallyConvexSpace_iff_exists_convex_subset_zero
+#print LocallyConvexSpace.toLocallyConnectedSpace /-
-- see Note [lower instance priority]
-instance (priority := 100) LocallyConvexSpace.to_locallyConnectedSpace [Module β E]
+instance (priority := 100) LocallyConvexSpace.toLocallyConnectedSpace [Module β E]
[ContinuousSMul β E] [LocallyConvexSpace β E] : LocallyConnectedSpace E :=
locallyConnectedSpace_of_connected_bases _ _
(fun x => @LocallyConvexSpace.convex_basis β _ _ _ _ _ _ x) fun x s hs => hs.2.IsPreconnected
-#align locally_convex_space.to_locally_connected_space LocallyConvexSpace.to_locallyConnectedSpace
+#align locally_convex_space.to_locally_connected_space LocallyConvexSpace.toLocallyConnectedSpace
+-/
end Module
@@ -117,6 +159,12 @@ section LinearOrderedField
variable (π E : Type _) [LinearOrderedField π] [AddCommGroup E] [Module π E] [TopologicalSpace E]
[TopologicalAddGroup E] [ContinuousConstSMul π E]
+/- warning: locally_convex_space.convex_open_basis_zero -> LocallyConvexSpace.convex_open_basis_zero is a dubious translation:
+lean 3 declaration is
+ forall (π : Type.{u1}) (E : Type.{u2}) [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)] [_inst_6 : ContinuousConstSMul.{u1, u2} π E _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))] [_inst_7 : LocallyConvexSpace.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4], Filter.HasBasis.{u2, succ u2} E (Set.{u2} E) (nhds.{u2} E _inst_4 (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2))))))))) (fun (s : Set.{u2} E) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)))))))) s) (And (IsOpen.{u2} E _inst_4 s) (Convex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) s))) (id.{succ u2} (Set.{u2} E))
+but is expected to have type
+ forall (π : Type.{u2}) (E : Type.{u1}) [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : TopologicalSpace.{u1} E] [_inst_5 : TopologicalAddGroup.{u1} E _inst_4 (AddCommGroup.toAddGroup.{u1} E _inst_2)] [_inst_6 : ContinuousConstSMul.{u2, u1} π E _inst_4 (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3))))] [_inst_7 : LocallyConvexSpace.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3 _inst_4], Filter.HasBasis.{u1, succ u1} E (Set.{u1} E) (nhds.{u1} E _inst_4 (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2)))))))) (fun (s : Set.{u1} E) => And (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))))) s) (And (IsOpen.{u1} E _inst_4 s) (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s))) (id.{succ u1} (Set.{u1} E))
+Case conversion may be inaccurate. Consider using '#align locally_convex_space.convex_open_basis_zero LocallyConvexSpace.convex_open_basis_zeroβ'. -/
theorem LocallyConvexSpace.convex_open_basis_zero [LocallyConvexSpace π E] :
(π 0 : Filter E).HasBasis (fun s => (0 : E) β s β§ IsOpen s β§ Convex π s) id :=
(LocallyConvexSpace.convex_basis_zero π E).to_hasBasis
@@ -128,6 +176,12 @@ theorem LocallyConvexSpace.convex_open_basis_zero [LocallyConvexSpace π E] :
variable {π E}
+/- warning: disjoint.exists_open_convexes -> Disjoint.exists_open_convexes is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} π] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : Module.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_4 : TopologicalSpace.{u2} E] [_inst_5 : TopologicalAddGroup.{u2} E _inst_4 (AddCommGroup.toAddGroup.{u2} E _inst_2)] [_inst_6 : ContinuousConstSMul.{u1, u2} π E _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3))))] [_inst_7 : LocallyConvexSpace.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3 _inst_4] {s : Set.{u2} E} {t : Set.{u2} E}, (Disjoint.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} E) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} E) (Set.booleanAlgebra.{u2} E))) s t) -> (Convex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) s) -> (IsCompact.{u2} E _inst_4 s) -> (Convex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) t) -> (IsClosed.{u2} E _inst_4 t) -> (Exists.{succ u2} (Set.{u2} E) (fun (u : Set.{u2} E) => Exists.{succ u2} (Set.{u2} E) (fun (v : Set.{u2} E) => And (IsOpen.{u2} E _inst_4 u) (And (IsOpen.{u2} E _inst_4 v) (And (Convex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) u) (And (Convex.{u1, u2} π E (StrictOrderedSemiring.toOrderedSemiring.{u1} π (StrictOrderedRing.toStrictOrderedSemiring.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) (SMulZeroClass.toHasSmul.{u1, u2} π E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} π E (MulZeroClass.toHasZero.{u1} π (MulZeroOneClass.toMulZeroClass.{u1} π (MonoidWithZero.toMulZeroOneClass.{u1} π (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} π E (Semiring.toMonoidWithZero.{u1} π (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} π E (Ring.toSemiring.{u1} π (StrictOrderedRing.toRing.{u1} π (LinearOrderedRing.toStrictOrderedRing.{u1} π (LinearOrderedCommRing.toLinearOrderedRing.{u1} π (LinearOrderedField.toLinearOrderedCommRing.{u1} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_3)))) v) (And (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s u) (And (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) t v) (Disjoint.{u2} (Set.{u2} E) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} E) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} E) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} E) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} E) (Set.completeBooleanAlgebra.{u2} E)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} E) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} E) (Set.booleanAlgebra.{u2} E))) u v)))))))))
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} π] [_inst_2 : AddCommGroup.{u1} E] [_inst_3 : Module.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2)] [_inst_4 : TopologicalSpace.{u1} E] [_inst_5 : TopologicalAddGroup.{u1} E _inst_4 (AddCommGroup.toAddGroup.{u1} E _inst_2)] [_inst_6 : ContinuousConstSMul.{u2, u1} π E _inst_4 (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3))))] [_inst_7 : LocallyConvexSpace.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3 _inst_4] {s : Set.{u1} E} {t : Set.{u1} E}, (Disjoint.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} E) (Preorder.toLE.{u1} (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))) s t) -> (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) s) -> (IsCompact.{u1} E _inst_4 s) -> (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) t) -> (IsClosed.{u1} E _inst_4 t) -> (Exists.{succ u1} (Set.{u1} E) (fun (u : Set.{u1} E) => Exists.{succ u1} (Set.{u1} E) (fun (v : Set.{u1} E) => And (IsOpen.{u1} E _inst_4 u) (And (IsOpen.{u1} E _inst_4 v) (And (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) u) (And (Convex.{u2, u1} π E (OrderedCommSemiring.toOrderedSemiring.{u2} π (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} π (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) (SMulZeroClass.toSMul.{u2, u1} π E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} π E (CommMonoidWithZero.toZero.{u2} π (CommGroupWithZero.toCommMonoidWithZero.{u2} π (Semifield.toCommGroupWithZero.{u2} π (LinearOrderedSemifield.toSemifield.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} π E (Semiring.toMonoidWithZero.{u2} π (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_2))))) (Module.toMulActionWithZero.{u2, u1} π E (StrictOrderedSemiring.toSemiring.{u2} π (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} π (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} π (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} π (LinearOrderedField.toLinearOrderedSemifield.{u2} π _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} E _inst_2) _inst_3)))) v) (And (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) s u) (And (HasSubset.Subset.{u1} (Set.{u1} E) (Set.instHasSubsetSet.{u1} E) t v) (Disjoint.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} E) (Preorder.toLE.{u1} (Set.{u1} E) (PartialOrder.toPreorder.{u1} (Set.{u1} E) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} E) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} E) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} E) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} E) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} E) (Set.instCompleteBooleanAlgebraSet.{u1} E)))))) u v)))))))))
+Case conversion may be inaccurate. Consider using '#align disjoint.exists_open_convexes Disjoint.exists_open_convexesβ'. -/
/-- In a locally convex space, if `s`, `t` are disjoint convex sets, `s` is compact and `t` is
closed, then we can find open disjoint convex sets containing them. -/
theorem Disjoint.exists_open_convexes [LocallyConvexSpace π E] {s t : Set E} (disj : Disjoint s t)
@@ -154,7 +208,13 @@ section LatticeOps
variable {ΞΉ : Sort _} {π E F : Type _} [OrderedSemiring π] [AddCommMonoid E] [Module π E]
[AddCommMonoid F] [Module π F]
-theorem locallyConvexSpaceInf {ts : Set (TopologicalSpace E)}
+/- warning: locally_convex_space_Inf -> locallyConvexSpace_sInf is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] {ts : Set.{u2} (TopologicalSpace.{u2} E)}, (forall (t : TopologicalSpace.{u2} E), (Membership.Mem.{u2, u2} (TopologicalSpace.{u2} E) (Set.{u2} (TopologicalSpace.{u2} E)) (Set.hasMem.{u2} (TopologicalSpace.{u2} E)) t ts) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 t)) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (InfSet.sInf.{u2} (TopologicalSpace.{u2} E) (ConditionallyCompleteLattice.toHasInf.{u2} (TopologicalSpace.{u2} E) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} E) (TopologicalSpace.completeLattice.{u2} E))) ts))
+but is expected to have type
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] {ts : Set.{u2} (TopologicalSpace.{u2} E)}, (forall (t : TopologicalSpace.{u2} E), (Membership.mem.{u2, u2} (TopologicalSpace.{u2} E) (Set.{u2} (TopologicalSpace.{u2} E)) (Set.instMembershipSet.{u2} (TopologicalSpace.{u2} E)) t ts) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 t)) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (InfSet.sInf.{u2} (TopologicalSpace.{u2} E) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} E) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} E) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} E))) ts))
+Case conversion may be inaccurate. Consider using '#align locally_convex_space_Inf locallyConvexSpace_sInfβ'. -/
+theorem locallyConvexSpace_sInf {ts : Set (TopologicalSpace E)}
(h : β t β ts, @LocallyConvexSpace π E _ _ _ t) : @LocallyConvexSpace π E _ _ _ (sInf ts) :=
by
letI : TopologicalSpace E := Inf ts
@@ -165,29 +225,43 @@ theorem locallyConvexSpaceInf {ts : Set (TopologicalSpace E)}
(fun x => _) fun x If hif => convex_iInter fun i => convex_iInter fun hi => (hif.2 i hi).2
rw [nhds_sInf, β iInf_subtype'']
exact has_basis_infi' fun i : ts => (@locallyConvexSpace_iff π E _ _ _ βi).mp (h (βi) i.2) x
-#align locally_convex_space_Inf locallyConvexSpaceInf
-
-theorem locallyConvexSpaceInfi {ts' : ΞΉ β TopologicalSpace E}
+#align locally_convex_space_Inf locallyConvexSpace_sInf
+
+/- warning: locally_convex_space_infi -> locallyConvexSpace_iInf is a dubious translation:
+lean 3 declaration is
+ forall {ΞΉ : Sort.{u1}} {π : Type.{u2}} {E : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u3} E] [_inst_3 : Module.{u2, u3} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] {ts' : ΞΉ -> (TopologicalSpace.{u3} E)}, (forall (i : ΞΉ), LocallyConvexSpace.{u2, u3} π E _inst_1 _inst_2 _inst_3 (ts' i)) -> (LocallyConvexSpace.{u2, u3} π E _inst_1 _inst_2 _inst_3 (iInf.{u3, u1} (TopologicalSpace.{u3} E) (ConditionallyCompleteLattice.toHasInf.{u3} (TopologicalSpace.{u3} E) (CompleteLattice.toConditionallyCompleteLattice.{u3} (TopologicalSpace.{u3} E) (TopologicalSpace.completeLattice.{u3} E))) ΞΉ (fun (i : ΞΉ) => ts' i)))
+but is expected to have type
+ forall {ΞΉ : Sort.{u1}} {π : Type.{u2}} {E : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u3} E] [_inst_3 : Module.{u2, u3} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] {ts' : ΞΉ -> (TopologicalSpace.{u3} E)}, (forall (i : ΞΉ), LocallyConvexSpace.{u2, u3} π E _inst_1 _inst_2 _inst_3 (ts' i)) -> (LocallyConvexSpace.{u2, u3} π E _inst_1 _inst_2 _inst_3 (iInf.{u3, u1} (TopologicalSpace.{u3} E) (ConditionallyCompleteLattice.toInfSet.{u3} (TopologicalSpace.{u3} E) (CompleteLattice.toConditionallyCompleteLattice.{u3} (TopologicalSpace.{u3} E) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u3} E))) ΞΉ (fun (i : ΞΉ) => ts' i)))
+Case conversion may be inaccurate. Consider using '#align locally_convex_space_infi locallyConvexSpace_iInfβ'. -/
+theorem locallyConvexSpace_iInf {ts' : ΞΉ β TopologicalSpace E}
(h' : β i, @LocallyConvexSpace π E _ _ _ (ts' i)) :
@LocallyConvexSpace π E _ _ _ (β¨
i, ts' i) :=
by
- refine' locallyConvexSpaceInf _
+ refine' locallyConvexSpace_sInf _
rwa [forall_range_iff]
-#align locally_convex_space_infi locallyConvexSpaceInfi
-
-/- warning: locally_convex_space_inf clashes with locally_convex_space_Inf -> locallyConvexSpaceInf
-Case conversion may be inaccurate. Consider using '#align locally_convex_space_inf locallyConvexSpaceInfβ'. -/
-#print locallyConvexSpaceInf /-
-theorem locallyConvexSpaceInf {tβ tβ : TopologicalSpace E} (hβ : @LocallyConvexSpace π E _ _ _ tβ)
+#align locally_convex_space_infi locallyConvexSpace_iInf
+
+/- warning: locally_convex_space_inf -> locallyConvexSpace_inf is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] {tβ : TopologicalSpace.{u2} E} {tβ : TopologicalSpace.{u2} E}, (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 tβ) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 tβ) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (Inf.inf.{u2} (TopologicalSpace.{u2} E) (SemilatticeInf.toHasInf.{u2} (TopologicalSpace.{u2} E) (Lattice.toSemilatticeInf.{u2} (TopologicalSpace.{u2} E) (ConditionallyCompleteLattice.toLattice.{u2} (TopologicalSpace.{u2} E) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} E) (TopologicalSpace.completeLattice.{u2} E))))) tβ tβ))
+but is expected to have type
+ forall {π : Type.{u1}} {E : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] {tβ : TopologicalSpace.{u2} E} {tβ : TopologicalSpace.{u2} E}, (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 tβ) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 tβ) -> (LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (Inf.inf.{u2} (TopologicalSpace.{u2} E) (Lattice.toInf.{u2} (TopologicalSpace.{u2} E) (ConditionallyCompleteLattice.toLattice.{u2} (TopologicalSpace.{u2} E) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} E) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} E)))) tβ tβ))
+Case conversion may be inaccurate. Consider using '#align locally_convex_space_inf locallyConvexSpace_infβ'. -/
+theorem locallyConvexSpace_inf {tβ tβ : TopologicalSpace E} (hβ : @LocallyConvexSpace π E _ _ _ tβ)
(hβ : @LocallyConvexSpace π E _ _ _ tβ) : @LocallyConvexSpace π E _ _ _ (tβ β tβ) :=
by
rw [inf_eq_iInf]
- refine' locallyConvexSpaceInfi fun b => _
+ refine' locallyConvexSpace_iInf fun b => _
cases b <;> assumption
-#align locally_convex_space_inf locallyConvexSpaceInf
--/
-
-theorem locallyConvexSpaceInduced {t : TopologicalSpace F} [LocallyConvexSpace π F]
+#align locally_convex_space_inf locallyConvexSpace_inf
+
+/- warning: locally_convex_space_induced -> locallyConvexSpace_induced is a dubious translation:
+lean 3 declaration is
+ forall {π : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} π] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : Module.{u1, u2} π E (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2] [_inst_4 : AddCommMonoid.{u3} F] [_inst_5 : Module.{u1, u3} π F (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_4] {t : TopologicalSpace.{u3} F} [_inst_6 : LocallyConvexSpace.{u1, u3} π F _inst_1 _inst_4 _inst_5 t] (f : LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5), LocallyConvexSpace.{u1, u2} π E _inst_1 _inst_2 _inst_3 (TopologicalSpace.induced.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} π π (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} π π E F (OrderedSemiring.toSemiring.{u1} π _inst_1) (OrderedSemiring.toSemiring.{u1} π _inst_1) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} π (Semiring.toNonAssocSemiring.{u1} π (OrderedSemiring.toSemiring.{u1} π _inst_1)))) f) t)
+but is expected to have type
+ forall {π : Type.{u2}} {E : Type.{u1}} {F : Type.{u3}} [_inst_1 : OrderedSemiring.{u2} π] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : Module.{u2, u1} π E (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2] [_inst_4 : AddCommMonoid.{u3} F] [_inst_5 : Module.{u2, u3} π F (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_4] {t : TopologicalSpace.{u3} F} [_inst_6 : LocallyConvexSpace.{u2, u3} π F _inst_1 _inst_4 _inst_5 t] (f : LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5), LocallyConvexSpace.{u2, u1} π E _inst_1 _inst_2 _inst_3 (TopologicalSpace.induced.{u1, u3} E F (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} π π (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1))) E F _inst_2 _inst_4 _inst_3 _inst_5) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} π π E F (OrderedSemiring.toSemiring.{u2} π _inst_1) (OrderedSemiring.toSemiring.{u2} π _inst_1) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u2} π (Semiring.toNonAssocSemiring.{u2} π (OrderedSemiring.toSemiring.{u2} π _inst_1)))) f) t)
+Case conversion may be inaccurate. Consider using '#align locally_convex_space_induced locallyConvexSpace_inducedβ'. -/
+theorem locallyConvexSpace_induced {t : TopologicalSpace F} [LocallyConvexSpace π F]
(f : E ββ[π] F) : @LocallyConvexSpace π E _ _ _ (t.induced f) :=
by
letI : TopologicalSpace E := t.induced f
@@ -197,16 +271,16 @@ theorem locallyConvexSpaceInduced {t : TopologicalSpace F} [LocallyConvexSpace
hs.linear_preimage f
rw [nhds_induced]
exact (LocallyConvexSpace.convex_basis <| f x).comap f
-#align locally_convex_space_induced locallyConvexSpaceInduced
+#align locally_convex_space_induced locallyConvexSpace_induced
instance {ΞΉ : Type _} {X : ΞΉ β Type _} [β i, AddCommMonoid (X i)] [β i, TopologicalSpace (X i)]
[β i, Module π (X i)] [β i, LocallyConvexSpace π (X i)] : LocallyConvexSpace π (β i, X i) :=
- locallyConvexSpaceInfi fun i => locallyConvexSpaceInduced (LinearMap.proj i)
+ locallyConvexSpace_iInf fun i => locallyConvexSpace_induced (LinearMap.proj i)
instance [TopologicalSpace E] [TopologicalSpace F] [LocallyConvexSpace π E]
[LocallyConvexSpace π F] : LocallyConvexSpace π (E Γ F) :=
- locallyConvexSpaceInf (locallyConvexSpaceInduced (LinearMap.fst _ _ _))
- (locallyConvexSpaceInduced (LinearMap.snd _ _ _))
+ locallyConvexSpace_inf (locallyConvexSpace_induced (LinearMap.fst _ _ _))
+ (locallyConvexSpace_induced (LinearMap.snd _ _ _))
end LatticeOps
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -155,15 +155,15 @@ variable {ΞΉ : Sort _} {π E F : Type _} [OrderedSemiring π] [AddCommMonoid
[AddCommMonoid F] [Module π F]
theorem locallyConvexSpaceInf {ts : Set (TopologicalSpace E)}
- (h : β t β ts, @LocallyConvexSpace π E _ _ _ t) : @LocallyConvexSpace π E _ _ _ (infβ ts) :=
+ (h : β t β ts, @LocallyConvexSpace π E _ _ _ t) : @LocallyConvexSpace π E _ _ _ (sInf ts) :=
by
letI : TopologicalSpace E := Inf ts
refine'
LocallyConvexSpace.ofBases π E (fun x => fun If : Set ts Γ (ts β Set E) => β i β If.1, If.2 i)
(fun x => fun If : Set ts Γ (ts β Set E) =>
If.1.Finite β§ β i β If.1, If.2 i β @nhds _ (βi) x β§ Convex π (If.2 i))
- (fun x => _) fun x If hif => convex_interα΅’ fun i => convex_interα΅’ fun hi => (hif.2 i hi).2
- rw [nhds_infβ, β infα΅’_subtype'']
+ (fun x => _) fun x If hif => convex_iInter fun i => convex_iInter fun hi => (hif.2 i hi).2
+ rw [nhds_sInf, β iInf_subtype'']
exact has_basis_infi' fun i : ts => (@locallyConvexSpace_iff π E _ _ _ βi).mp (h (βi) i.2) x
#align locally_convex_space_Inf locallyConvexSpaceInf
@@ -181,7 +181,7 @@ Case conversion may be inaccurate. Consider using '#align locally_convex_space_i
theorem locallyConvexSpaceInf {tβ tβ : TopologicalSpace E} (hβ : @LocallyConvexSpace π E _ _ _ tβ)
(hβ : @LocallyConvexSpace π E _ _ _ tβ) : @LocallyConvexSpace π E _ _ _ (tβ β tβ) :=
by
- rw [inf_eq_infα΅’]
+ rw [inf_eq_iInf]
refine' locallyConvexSpaceInfi fun b => _
cases b <;> assumption
#align locally_convex_space_inf locallyConvexSpaceInf
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -135,7 +135,7 @@ theorem Disjoint.exists_open_convexes [LocallyConvexSpace π E] {s t : Set E}
β u v, IsOpen u β§ IsOpen v β§ Convex π u β§ Convex π v β§ s β u β§ t β v β§ Disjoint u v :=
by
letI : UniformSpace E := TopologicalAddGroup.toUniformSpace E
- haveI : UniformAddGroup E := topological_add_commGroup_is_uniform
+ haveI : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
have := (LocallyConvexSpace.convex_open_basis_zero π E).comap fun x : E Γ E => x.2 - x.1
rw [β uniformity_eq_comap_nhds_zero] at this
rcases disj.exists_uniform_thickening_of_basis this hsβ htβ with β¨V, β¨hV0, hVopen, hVconvexβ©, hVβ©
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
ball
and bex
from lemma names (#10816)
ball
for "bounded forall" and bex
for "bounded exists" are from experience very confusing abbreviations. This PR renames them to forall_mem
and exists_mem
in the few Set
lemma names that mention them.
Also deprecate ball_image_of_ball
, mem_image_elim
, mem_image_elim_on
since those lemmas are duplicates of the renamed lemmas (apart from argument order and implicitness, which I am also fixing by making the binder in the RHS of forall_mem_image
semi-implicit), have obscure names and are completely unused.
@@ -165,7 +165,7 @@ theorem locallyConvexSpace_iInf {ts' : ΞΉ β TopologicalSpace E}
(h' : β i, @LocallyConvexSpace π E _ _ _ (ts' i)) :
@LocallyConvexSpace π E _ _ _ (β¨
i, ts' i) := by
refine' locallyConvexSpace_sInf _
- rwa [forall_range_iff]
+ rwa [forall_mem_range]
#align locally_convex_space_infi locallyConvexSpace_iInf
theorem locallyConvexSpace_inf {tβ tβ : TopologicalSpace E} (hβ : @LocallyConvexSpace π E _ _ _ tβ)
In this pull request, I have systematically eliminated the leading whitespace preceding the colon (:
) within all unlabelled or unclassified porting notes. This adjustment facilitates a more efficient review process for the remaining notes by ensuring no entries are overlooked due to formatting inconsistencies.
@@ -193,7 +193,7 @@ instance Pi.locallyConvexSpace {ΞΉ : Type*} {X : ΞΉ β Type*} [β i, AddCommMo
instance Prod.locallyConvexSpace [TopologicalSpace E] [TopologicalSpace F] [LocallyConvexSpace π E]
[LocallyConvexSpace π F] : LocallyConvexSpace π (E Γ F) :=
--- Porting note : had to specify `tβ` and `tβ`
+-- Porting note: had to specify `tβ` and `tβ`
locallyConvexSpace_inf (tβ := induced Prod.fst _) (tβ := induced Prod.snd _)
(locallyConvexSpace_induced (LinearMap.fst _ _ _))
(locallyConvexSpace_induced (LinearMap.snd _ _ _))
(Β· op Β·) a
by (a op Β·)
(#8843)
I used the regex \(\(Β· (.) Β·\) (.)\)
, replacing with ($2 $1 Β·)
.
@@ -83,7 +83,7 @@ variable (π E : Type*) [OrderedSemiring π] [AddCommGroup E] [Module π E
theorem LocallyConvexSpace.ofBasisZero {ΞΉ : Type*} (b : ΞΉ β Set E) (p : ΞΉ β Prop)
(hbasis : (π 0).HasBasis p b) (hconvex : β i, p i β Convex π (b i)) :
LocallyConvexSpace π E := by
- refine' LocallyConvexSpace.ofBases π E (fun (x : E) (i : ΞΉ) => (Β· + Β·) x '' b i) (fun _ => p)
+ refine' LocallyConvexSpace.ofBases π E (fun (x : E) (i : ΞΉ) => (x + Β·) '' b i) (fun _ => p)
(fun x => _) fun x i hi => (hconvex i hi).translate x
rw [β map_add_left_nhds_zero]
exact hbasis.map _
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -41,19 +41,19 @@ section Semimodule
/-- A `LocallyConvexSpace` is a topological semimodule over an ordered semiring in which convex
neighborhoods of a point form a neighborhood basis at that point. -/
-class LocallyConvexSpace (π E : Type _) [OrderedSemiring π] [AddCommMonoid E] [Module π E]
+class LocallyConvexSpace (π E : Type*) [OrderedSemiring π] [AddCommMonoid E] [Module π E]
[TopologicalSpace E] : Prop where
convex_basis : β x : E, (π x).HasBasis (fun s : Set E => s β π x β§ Convex π s) id
#align locally_convex_space LocallyConvexSpace
-variable (π E : Type _) [OrderedSemiring π] [AddCommMonoid E] [Module π E] [TopologicalSpace E]
+variable (π E : Type*) [OrderedSemiring π] [AddCommMonoid E] [Module π E] [TopologicalSpace E]
theorem locallyConvexSpace_iff :
LocallyConvexSpace π E β β x : E, (π x).HasBasis (fun s : Set E => s β π x β§ Convex π s) id :=
β¨@LocallyConvexSpace.convex_basis _ _ _ _ _ _, LocallyConvexSpace.mkβ©
#align locally_convex_space_iff locallyConvexSpace_iff
-theorem LocallyConvexSpace.ofBases {ΞΉ : Type _} (b : E β ΞΉ β Set E) (p : E β ΞΉ β Prop)
+theorem LocallyConvexSpace.ofBases {ΞΉ : Type*} (b : E β ΞΉ β Set E) (p : E β ΞΉ β Prop)
(hbasis : β x : E, (π x).HasBasis (p x) (b x)) (hconvex : β x i, p x i β Convex π (b x i)) :
LocallyConvexSpace π E :=
β¨fun x =>
@@ -77,10 +77,10 @@ end Semimodule
section Module
-variable (π E : Type _) [OrderedSemiring π] [AddCommGroup E] [Module π E] [TopologicalSpace E]
+variable (π E : Type*) [OrderedSemiring π] [AddCommGroup E] [Module π E] [TopologicalSpace E]
[TopologicalAddGroup E]
-theorem LocallyConvexSpace.ofBasisZero {ΞΉ : Type _} (b : ΞΉ β Set E) (p : ΞΉ β Prop)
+theorem LocallyConvexSpace.ofBasisZero {ΞΉ : Type*} (b : ΞΉ β Set E) (p : ΞΉ β Prop)
(hbasis : (π 0).HasBasis p b) (hconvex : β i, p i β Convex π (b i)) :
LocallyConvexSpace π E := by
refine' LocallyConvexSpace.ofBases π E (fun (x : E) (i : ΞΉ) => (Β· + Β·) x '' b i) (fun _ => p)
@@ -111,7 +111,7 @@ end Module
section LinearOrderedField
-variable (π E : Type _) [LinearOrderedField π] [AddCommGroup E] [Module π E] [TopologicalSpace E]
+variable (π E : Type*) [LinearOrderedField π] [AddCommGroup E] [Module π E] [TopologicalSpace E]
[TopologicalAddGroup E] [ContinuousConstSMul π E]
theorem LocallyConvexSpace.convex_open_basis_zero [LocallyConvexSpace π E] :
@@ -146,7 +146,7 @@ end LinearOrderedField
section LatticeOps
-variable {ΞΉ : Sort _} {π E F : Type _} [OrderedSemiring π] [AddCommMonoid E] [Module π E]
+variable {ΞΉ : Sort*} {π E F : Type*} [OrderedSemiring π] [AddCommMonoid E] [Module π E]
[AddCommMonoid F] [Module π F]
theorem locallyConvexSpace_sInf {ts : Set (TopologicalSpace E)}
@@ -185,7 +185,7 @@ theorem locallyConvexSpace_induced {t : TopologicalSpace F} [LocallyConvexSpace
exact (LocallyConvexSpace.convex_basis <| f x).comap f
#align locally_convex_space_induced locallyConvexSpace_induced
-instance Pi.locallyConvexSpace {ΞΉ : Type _} {X : ΞΉ β Type _} [β i, AddCommMonoid (X i)]
+instance Pi.locallyConvexSpace {ΞΉ : Type*} {X : ΞΉ β Type*} [β i, AddCommMonoid (X i)]
[β i, TopologicalSpace (X i)] [β i, Module π (X i)] [β i, LocallyConvexSpace π (X i)] :
LocallyConvexSpace π (β i, X i) :=
locallyConvexSpace_iInf fun i => locallyConvexSpace_induced (LinearMap.proj i)
@@ -2,14 +2,11 @@
Copyright (c) 2022 Anatole Dedecker. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anatole Dedecker
-
-! This file was ported from Lean 3 source module topology.algebra.module.locally_convex
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Convex.Topology
+#align_import topology.algebra.module.locally_convex from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
/-!
# Locally convex topological modules
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file