topology.uniform_space.matrix
β·
Mathlib.Topology.UniformSpace.Matrix
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
@@ -45,8 +45,8 @@ theorem uniformContinuous {Ξ² : Type _} [UniformSpace Ξ²] {f : Ξ² β Matrix m n
instance [CompleteSpace π] : CompleteSpace (Matrix m n π) :=
(by infer_instance : CompleteSpace (m β n β π))
-instance [SeparatedSpace π] : SeparatedSpace (Matrix m n π) :=
- (by infer_instance : SeparatedSpace (m β n β π))
+instance [T0Space π] : T0Space (Matrix m n π) :=
+ (by infer_instance : T0Space (m β n β π))
end Matrix
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2022 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser, Heather Macbeth
-/
-import Mathbin.Topology.UniformSpace.Pi
-import Mathbin.Data.Matrix.Basic
+import Topology.UniformSpace.Pi
+import Data.Matrix.Basic
#align_import topology.uniform_space.matrix from "leanprover-community/mathlib"@"d64d67d000b974f0d86a2be7918cf800be6271c8"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2022 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser, Heather Macbeth
-
-! This file was ported from Lean 3 source module topology.uniform_space.matrix
-! leanprover-community/mathlib commit d64d67d000b974f0d86a2be7918cf800be6271c8
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Topology.UniformSpace.Pi
import Mathbin.Data.Matrix.Basic
+#align_import topology.uniform_space.matrix from "leanprover-community/mathlib"@"d64d67d000b974f0d86a2be7918cf800be6271c8"
+
/-!
# Uniform space structure on matrices
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -28,6 +28,7 @@ namespace Matrix
instance : UniformSpace (Matrix m n π) :=
(by infer_instance : UniformSpace (m β n β π))
+#print Matrix.uniformity /-
theorem uniformity :
π€ (Matrix m n π) = β¨
(i : m) (j : n), (π€ π).comap fun a => (a.1 i j, a.2 i j) :=
by
@@ -35,11 +36,14 @@ theorem uniformity :
simp_rw [Filter.comap_iInf, Filter.comap_comap]
rfl
#align matrix.uniformity Matrix.uniformity
+-/
+#print Matrix.uniformContinuous /-
theorem uniformContinuous {Ξ² : Type _} [UniformSpace Ξ²] {f : Ξ² β Matrix m n π} :
UniformContinuous f β β i j, UniformContinuous fun x => f x i j := by
simp only [UniformContinuous, Matrix.uniformity, Filter.tendsto_iInf, Filter.tendsto_comap_iff]
#align matrix.uniform_continuous Matrix.uniformContinuous
+-/
instance [CompleteSpace π] : CompleteSpace (Matrix m n π) :=
(by infer_instance : CompleteSpace (m β n β π))
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -19,7 +19,7 @@ import Mathbin.Data.Matrix.Basic
-/
-open uniformity Topology
+open scoped uniformity Topology
variable (m n π : Type _) [UniformSpace π]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -28,12 +28,6 @@ namespace Matrix
instance : UniformSpace (Matrix m n π) :=
(by infer_instance : UniformSpace (m β n β π))
-/- warning: matrix.uniformity -> Matrix.uniformity is a dubious translation:
-lean 3 declaration is
- forall (m : Type.{u1}) (n : Type.{u2}) (π : Type.{u3}) [_inst_1 : UniformSpace.{u3} π], Eq.{succ (max u1 u2 u3)} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (uniformity.{max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.uniformSpace.{u1, u2, u3} m n π _inst_1)) (iInf.{max u1 u2 u3, succ u1} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (ConditionallyCompleteLattice.toHasInf.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (Filter.completeLattice.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))))) m (fun (i : m) => iInf.{max u1 u2 u3, succ u2} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (ConditionallyCompleteLattice.toHasInf.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (Filter.completeLattice.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))))) n (fun (j : n) => Filter.comap.{max u1 u2 u3, u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π)) (Prod.{u3, u3} π π) (fun (a : Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π)) => Prod.mk.{u3, u3} π π (Prod.fst.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π) a i j) (Prod.snd.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π) a i j)) (uniformity.{u3} π _inst_1))))
-but is expected to have type
- forall (m : Type.{u3}) (n : Type.{u2}) (π : Type.{u1}) [_inst_1 : UniformSpace.{u1} π], Eq.{max (max (succ u3) (succ u2)) (succ u1)} (Filter.{max (max u1 u2) u3} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (uniformity.{max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.instUniformSpaceMatrix.{u3, u2, u1} m n π _inst_1)) (iInf.{max (max u3 u2) u1, succ u3} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (ConditionallyCompleteLattice.toInfSet.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (Filter.instCompleteLatticeFilter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))))) m (fun (i : m) => iInf.{max (max u3 u2) u1, succ u2} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (ConditionallyCompleteLattice.toInfSet.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (Filter.instCompleteLatticeFilter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))))) n (fun (j : n) => Filter.comap.{max (max u3 u2) u1, u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π)) (Prod.{u1, u1} π π) (fun (a : Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π)) => Prod.mk.{u1, u1} π π (Prod.fst.{max (max u3 u2) u1, max (max u3 u2) u1} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π) a i j) (Prod.snd.{max (max u3 u2) u1, max (max u3 u2) u1} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π) a i j)) (uniformity.{u1} π _inst_1))))
-Case conversion may be inaccurate. Consider using '#align matrix.uniformity Matrix.uniformityβ'. -/
theorem uniformity :
π€ (Matrix m n π) = β¨
(i : m) (j : n), (π€ π).comap fun a => (a.1 i j, a.2 i j) :=
by
@@ -42,12 +36,6 @@ theorem uniformity :
rfl
#align matrix.uniformity Matrix.uniformity
-/- warning: matrix.uniform_continuous -> Matrix.uniformContinuous is a dubious translation:
-lean 3 declaration is
- forall (m : Type.{u1}) (n : Type.{u2}) (π : Type.{u3}) [_inst_1 : UniformSpace.{u3} π] {Ξ² : Type.{u4}} [_inst_2 : UniformSpace.{u4} Ξ²] {f : Ξ² -> (Matrix.{u1, u2, u3} m n π)}, Iff (UniformContinuous.{u4, max u1 u2 u3} Ξ² (Matrix.{u1, u2, u3} m n π) _inst_2 (Matrix.uniformSpace.{u1, u2, u3} m n π _inst_1) f) (forall (i : m) (j : n), UniformContinuous.{u4, u3} Ξ² π _inst_2 _inst_1 (fun (x : Ξ²) => f x i j))
-but is expected to have type
- forall (m : Type.{u3}) (n : Type.{u2}) (π : Type.{u1}) [_inst_1 : UniformSpace.{u1} π] {Ξ² : Type.{u4}} [_inst_2 : UniformSpace.{u4} Ξ²] {f : Ξ² -> (Matrix.{u3, u2, u1} m n π)}, Iff (UniformContinuous.{u4, max (max u3 u2) u1} Ξ² (Matrix.{u3, u2, u1} m n π) _inst_2 (Matrix.instUniformSpaceMatrix.{u3, u2, u1} m n π _inst_1) f) (forall (i : m) (j : n), UniformContinuous.{u4, u1} Ξ² π _inst_2 _inst_1 (fun (x : Ξ²) => f x i j))
-Case conversion may be inaccurate. Consider using '#align matrix.uniform_continuous Matrix.uniformContinuousβ'. -/
theorem uniformContinuous {Ξ² : Type _} [UniformSpace Ξ²] {f : Ξ² β Matrix m n π} :
UniformContinuous f β β i j, UniformContinuous fun x => f x i j := by
simp only [UniformContinuous, Matrix.uniformity, Filter.tendsto_iInf, Filter.tendsto_comap_iff]
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -30,15 +30,15 @@ instance : UniformSpace (Matrix m n π) :=
/- warning: matrix.uniformity -> Matrix.uniformity is a dubious translation:
lean 3 declaration is
- forall (m : Type.{u1}) (n : Type.{u2}) (π : Type.{u3}) [_inst_1 : UniformSpace.{u3} π], Eq.{succ (max u1 u2 u3)} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (uniformity.{max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.uniformSpace.{u1, u2, u3} m n π _inst_1)) (infα΅’.{max u1 u2 u3, succ u1} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (ConditionallyCompleteLattice.toHasInf.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (Filter.completeLattice.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))))) m (fun (i : m) => infα΅’.{max u1 u2 u3, succ u2} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (ConditionallyCompleteLattice.toHasInf.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (Filter.completeLattice.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))))) n (fun (j : n) => Filter.comap.{max u1 u2 u3, u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π)) (Prod.{u3, u3} π π) (fun (a : Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π)) => Prod.mk.{u3, u3} π π (Prod.fst.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π) a i j) (Prod.snd.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π) a i j)) (uniformity.{u3} π _inst_1))))
+ forall (m : Type.{u1}) (n : Type.{u2}) (π : Type.{u3}) [_inst_1 : UniformSpace.{u3} π], Eq.{succ (max u1 u2 u3)} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (uniformity.{max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.uniformSpace.{u1, u2, u3} m n π _inst_1)) (iInf.{max u1 u2 u3, succ u1} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (ConditionallyCompleteLattice.toHasInf.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (Filter.completeLattice.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))))) m (fun (i : m) => iInf.{max u1 u2 u3, succ u2} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (ConditionallyCompleteLattice.toHasInf.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (Filter.completeLattice.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))))) n (fun (j : n) => Filter.comap.{max u1 u2 u3, u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π)) (Prod.{u3, u3} π π) (fun (a : Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π)) => Prod.mk.{u3, u3} π π (Prod.fst.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π) a i j) (Prod.snd.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π) a i j)) (uniformity.{u3} π _inst_1))))
but is expected to have type
- forall (m : Type.{u3}) (n : Type.{u2}) (π : Type.{u1}) [_inst_1 : UniformSpace.{u1} π], Eq.{max (max (succ u3) (succ u2)) (succ u1)} (Filter.{max (max u1 u2) u3} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (uniformity.{max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.instUniformSpaceMatrix.{u3, u2, u1} m n π _inst_1)) (infα΅’.{max (max u3 u2) u1, succ u3} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (ConditionallyCompleteLattice.toInfSet.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (Filter.instCompleteLatticeFilter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))))) m (fun (i : m) => infα΅’.{max (max u3 u2) u1, succ u2} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (ConditionallyCompleteLattice.toInfSet.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (Filter.instCompleteLatticeFilter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))))) n (fun (j : n) => Filter.comap.{max (max u3 u2) u1, u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π)) (Prod.{u1, u1} π π) (fun (a : Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π)) => Prod.mk.{u1, u1} π π (Prod.fst.{max (max u3 u2) u1, max (max u3 u2) u1} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π) a i j) (Prod.snd.{max (max u3 u2) u1, max (max u3 u2) u1} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π) a i j)) (uniformity.{u1} π _inst_1))))
+ forall (m : Type.{u3}) (n : Type.{u2}) (π : Type.{u1}) [_inst_1 : UniformSpace.{u1} π], Eq.{max (max (succ u3) (succ u2)) (succ u1)} (Filter.{max (max u1 u2) u3} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (uniformity.{max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.instUniformSpaceMatrix.{u3, u2, u1} m n π _inst_1)) (iInf.{max (max u3 u2) u1, succ u3} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (ConditionallyCompleteLattice.toInfSet.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (Filter.instCompleteLatticeFilter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))))) m (fun (i : m) => iInf.{max (max u3 u2) u1, succ u2} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (ConditionallyCompleteLattice.toInfSet.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (Filter.instCompleteLatticeFilter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))))) n (fun (j : n) => Filter.comap.{max (max u3 u2) u1, u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π)) (Prod.{u1, u1} π π) (fun (a : Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π)) => Prod.mk.{u1, u1} π π (Prod.fst.{max (max u3 u2) u1, max (max u3 u2) u1} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π) a i j) (Prod.snd.{max (max u3 u2) u1, max (max u3 u2) u1} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π) a i j)) (uniformity.{u1} π _inst_1))))
Case conversion may be inaccurate. Consider using '#align matrix.uniformity Matrix.uniformityβ'. -/
theorem uniformity :
π€ (Matrix m n π) = β¨
(i : m) (j : n), (π€ π).comap fun a => (a.1 i j, a.2 i j) :=
by
erw [Pi.uniformity, Pi.uniformity]
- simp_rw [Filter.comap_infα΅’, Filter.comap_comap]
+ simp_rw [Filter.comap_iInf, Filter.comap_comap]
rfl
#align matrix.uniformity Matrix.uniformity
@@ -50,7 +50,7 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align matrix.uniform_continuous Matrix.uniformContinuousβ'. -/
theorem uniformContinuous {Ξ² : Type _} [UniformSpace Ξ²] {f : Ξ² β Matrix m n π} :
UniformContinuous f β β i j, UniformContinuous fun x => f x i j := by
- simp only [UniformContinuous, Matrix.uniformity, Filter.tendsto_infα΅’, Filter.tendsto_comap_iff]
+ simp only [UniformContinuous, Matrix.uniformity, Filter.tendsto_iInf, Filter.tendsto_comap_iff]
#align matrix.uniform_continuous Matrix.uniformContinuous
instance [CompleteSpace π] : CompleteSpace (Matrix m n π) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/06a655b5fcfbda03502f9158bbf6c0f1400886f9
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser, Heather Macbeth
! This file was ported from Lean 3 source module topology.uniform_space.matrix
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit d64d67d000b974f0d86a2be7918cf800be6271c8
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.Data.Matrix.Basic
/-!
# Uniform space structure on matrices
+
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/3cacc945118c8c637d89950af01da78307f59325
@@ -25,6 +25,12 @@ namespace Matrix
instance : UniformSpace (Matrix m n π) :=
(by infer_instance : UniformSpace (m β n β π))
+/- warning: matrix.uniformity -> Matrix.uniformity is a dubious translation:
+lean 3 declaration is
+ forall (m : Type.{u1}) (n : Type.{u2}) (π : Type.{u3}) [_inst_1 : UniformSpace.{u3} π], Eq.{succ (max u1 u2 u3)} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (uniformity.{max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.uniformSpace.{u1, u2, u3} m n π _inst_1)) (infα΅’.{max u1 u2 u3, succ u1} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (ConditionallyCompleteLattice.toHasInf.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (Filter.completeLattice.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))))) m (fun (i : m) => infα΅’.{max u1 u2 u3, succ u2} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (ConditionallyCompleteLattice.toHasInf.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2 u3} (Filter.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))) (Filter.completeLattice.{max u1 u2 u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π))))) n (fun (j : n) => Filter.comap.{max u1 u2 u3, u3} (Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π)) (Prod.{u3, u3} π π) (fun (a : Prod.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π)) => Prod.mk.{u3, u3} π π (Prod.fst.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π) a i j) (Prod.snd.{max u1 u2 u3, max u1 u2 u3} (Matrix.{u1, u2, u3} m n π) (Matrix.{u1, u2, u3} m n π) a i j)) (uniformity.{u3} π _inst_1))))
+but is expected to have type
+ forall (m : Type.{u3}) (n : Type.{u2}) (π : Type.{u1}) [_inst_1 : UniformSpace.{u1} π], Eq.{max (max (succ u3) (succ u2)) (succ u1)} (Filter.{max (max u1 u2) u3} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (uniformity.{max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.instUniformSpaceMatrix.{u3, u2, u1} m n π _inst_1)) (infα΅’.{max (max u3 u2) u1, succ u3} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (ConditionallyCompleteLattice.toInfSet.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (Filter.instCompleteLatticeFilter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))))) m (fun (i : m) => infα΅’.{max (max u3 u2) u1, succ u2} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (ConditionallyCompleteLattice.toInfSet.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (CompleteLattice.toConditionallyCompleteLattice.{max (max u3 u2) u1} (Filter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))) (Filter.instCompleteLatticeFilter.{max (max u3 u2) u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π))))) n (fun (j : n) => Filter.comap.{max (max u3 u2) u1, u1} (Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π)) (Prod.{u1, u1} π π) (fun (a : Prod.{max (max u1 u2) u3, max (max u1 u2) u3} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π)) => Prod.mk.{u1, u1} π π (Prod.fst.{max (max u3 u2) u1, max (max u3 u2) u1} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π) a i j) (Prod.snd.{max (max u3 u2) u1, max (max u3 u2) u1} (Matrix.{u3, u2, u1} m n π) (Matrix.{u3, u2, u1} m n π) a i j)) (uniformity.{u1} π _inst_1))))
+Case conversion may be inaccurate. Consider using '#align matrix.uniformity Matrix.uniformityβ'. -/
theorem uniformity :
π€ (Matrix m n π) = β¨
(i : m) (j : n), (π€ π).comap fun a => (a.1 i j, a.2 i j) :=
by
@@ -33,6 +39,12 @@ theorem uniformity :
rfl
#align matrix.uniformity Matrix.uniformity
+/- warning: matrix.uniform_continuous -> Matrix.uniformContinuous is a dubious translation:
+lean 3 declaration is
+ forall (m : Type.{u1}) (n : Type.{u2}) (π : Type.{u3}) [_inst_1 : UniformSpace.{u3} π] {Ξ² : Type.{u4}} [_inst_2 : UniformSpace.{u4} Ξ²] {f : Ξ² -> (Matrix.{u1, u2, u3} m n π)}, Iff (UniformContinuous.{u4, max u1 u2 u3} Ξ² (Matrix.{u1, u2, u3} m n π) _inst_2 (Matrix.uniformSpace.{u1, u2, u3} m n π _inst_1) f) (forall (i : m) (j : n), UniformContinuous.{u4, u3} Ξ² π _inst_2 _inst_1 (fun (x : Ξ²) => f x i j))
+but is expected to have type
+ forall (m : Type.{u3}) (n : Type.{u2}) (π : Type.{u1}) [_inst_1 : UniformSpace.{u1} π] {Ξ² : Type.{u4}} [_inst_2 : UniformSpace.{u4} Ξ²] {f : Ξ² -> (Matrix.{u3, u2, u1} m n π)}, Iff (UniformContinuous.{u4, max (max u3 u2) u1} Ξ² (Matrix.{u3, u2, u1} m n π) _inst_2 (Matrix.instUniformSpaceMatrix.{u3, u2, u1} m n π _inst_1) f) (forall (i : m) (j : n), UniformContinuous.{u4, u1} Ξ² π _inst_2 _inst_1 (fun (x : Ξ²) => f x i j))
+Case conversion may be inaccurate. Consider using '#align matrix.uniform_continuous Matrix.uniformContinuousβ'. -/
theorem uniformContinuous {Ξ² : Type _} [UniformSpace Ξ²] {f : Ξ² β Matrix m n π} :
UniformContinuous f β β i j, UniformContinuous fun x => f x i j := by
simp only [UniformContinuous, Matrix.uniformity, Filter.tendsto_infα΅’, Filter.tendsto_comap_iff]
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -20,7 +20,7 @@ variable (m n π : Type*) [UniformSpace π]
namespace Matrix
-instance : UniformSpace (Matrix m n π) :=
+instance instUniformSpace : UniformSpace (Matrix m n π) :=
(by infer_instance : UniformSpace (m β n β π))
instance instUniformAddGroup [AddGroup π] [UniformAddGroup π] :
separationRel
(#10644)
We had duplicated API between topological spaces and uniform spaces. In this PR I mostly deduplicate it with some exceptions:
SeparationQuotient.lift'
and SeparationQuotient.map
are leftovers from the old version
that are designed to work with uniform spaces;UniformSpace
when TopologicalSpace
would work.Outside of UniformSpace/Separation
, I mostly changed SeparatedSpace
to T0Space
and separationRel
to Inseparable
. I also rewrote a few proofs that were broken by the API change.
Fixes #2031
@@ -43,7 +43,7 @@ theorem uniformContinuous {Ξ² : Type*} [UniformSpace Ξ²] {f : Ξ² β Matrix m n
instance [CompleteSpace π] : CompleteSpace (Matrix m n π) :=
(by infer_instance : CompleteSpace (m β n β π))
-instance [SeparatedSpace π] : SeparatedSpace (Matrix m n π) :=
- (by infer_instance : SeparatedSpace (m β n β π))
+instance [T0Space π] : T0Space (Matrix m n π) :=
+ inferInstanceAs (T0Space (m β n β π))
end Matrix
@@ -3,6 +3,7 @@ Copyright (c) 2022 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser, Heather Macbeth
-/
+import Mathlib.Topology.Algebra.UniformGroup
import Mathlib.Topology.UniformSpace.Pi
import Mathlib.Data.Matrix.Basic
@@ -22,6 +23,10 @@ namespace Matrix
instance : UniformSpace (Matrix m n π) :=
(by infer_instance : UniformSpace (m β n β π))
+instance instUniformAddGroup [AddGroup π] [UniformAddGroup π] :
+ UniformAddGroup (Matrix m n π) :=
+ inferInstanceAs <| UniformAddGroup (m β n β π)
+
theorem uniformity :
π€ (Matrix m n π) = β¨
(i : m) (j : n), (π€ π).comap fun a => (a.1 i j, a.2 i j) := by
erw [Pi.uniformity, Pi.uniformity]
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -15,7 +15,7 @@ import Mathlib.Data.Matrix.Basic
open Uniformity Topology
-variable (m n π : Type _) [UniformSpace π]
+variable (m n π : Type*) [UniformSpace π]
namespace Matrix
@@ -29,7 +29,7 @@ theorem uniformity :
rfl
#align matrix.uniformity Matrix.uniformity
-theorem uniformContinuous {Ξ² : Type _} [UniformSpace Ξ²] {f : Ξ² β Matrix m n π} :
+theorem uniformContinuous {Ξ² : Type*} [UniformSpace Ξ²] {f : Ξ² β Matrix m n π} :
UniformContinuous f β β i j, UniformContinuous fun x => f x i j := by
simp only [UniformContinuous, Matrix.uniformity, Filter.tendsto_iInf, Filter.tendsto_comap_iff]
apply Iff.intro <;> intro a <;> apply a
@@ -2,15 +2,12 @@
Copyright (c) 2022 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser, Heather Macbeth
-
-! This file was ported from Lean 3 source module topology.uniform_space.matrix
-! 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.Topology.UniformSpace.Pi
import Mathlib.Data.Matrix.Basic
+#align_import topology.uniform_space.matrix from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
/-!
# Uniform space structure on matrices
-/
sSup
/iSup
(#3938)
As discussed on Zulip
supβ
β sSup
infβ
β sInf
supα΅’
β iSup
infα΅’
β iInf
bsupβ
β bsSup
binfβ
β bsInf
bsupα΅’
β biSup
binfα΅’
β biInf
csupβ
β csSup
cinfβ
β csInf
csupα΅’
β ciSup
cinfα΅’
β ciInf
unionβ
β sUnion
interβ
β sInter
unionα΅’
β iUnion
interα΅’
β iInter
bunionβ
β bsUnion
binterβ
β bsInter
bunionα΅’
β biUnion
binterα΅’
β biInter
Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>
@@ -28,13 +28,13 @@ instance : UniformSpace (Matrix m n π) :=
theorem uniformity :
π€ (Matrix m n π) = β¨
(i : m) (j : n), (π€ π).comap fun a => (a.1 i j, a.2 i j) := by
erw [Pi.uniformity, Pi.uniformity]
- simp_rw [Filter.comap_infα΅’, Filter.comap_comap]
+ simp_rw [Filter.comap_iInf, Filter.comap_comap]
rfl
#align matrix.uniformity Matrix.uniformity
theorem uniformContinuous {Ξ² : Type _} [UniformSpace Ξ²] {f : Ξ² β Matrix m n π} :
UniformContinuous f β β i j, UniformContinuous fun x => f x i j := by
- simp only [UniformContinuous, Matrix.uniformity, Filter.tendsto_infα΅’, Filter.tendsto_comap_iff]
+ simp only [UniformContinuous, Matrix.uniformity, Filter.tendsto_iInf, Filter.tendsto_comap_iff]
apply Iff.intro <;> intro a <;> apply a
#align matrix.uniform_continuous Matrix.uniformContinuous
The unported dependencies are