Skip to content

Commit e3c20cb

Browse files
committed
feat: BoundedSMul for matrix norms (#9817)
This provides the fact that the norm of scaling a matrix of quaternions by a quaternion is bounded by the product of the norms.
1 parent 052d8d5 commit e3c20cb

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

Mathlib/Analysis/Matrix.lean

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ In this file we provide the following non-instances for norms on matrices:
1919
* `Matrix.seminormedAddCommGroup`
2020
* `Matrix.normedAddCommGroup`
2121
* `Matrix.normedSpace`
22+
* `Matrix.boundedSMul`
2223
2324
* The Frobenius norm:
2425
@@ -27,12 +28,14 @@ In this file we provide the following non-instances for norms on matrices:
2728
* `Matrix.frobeniusNormedSpace`
2829
* `Matrix.frobeniusNormedRing`
2930
* `Matrix.frobeniusNormedAlgebra`
31+
* `Matrix.frobeniusBoundedSMul`
3032
3133
* The $L^\infty$ operator norm:
3234
3335
* `Matrix.linftyOpSeminormedAddCommGroup`
3436
* `Matrix.linftyOpNormedAddCommGroup`
3537
* `Matrix.linftyOpNormedSpace`
38+
* `Matrix.linftyOpBoundedSMul`
3639
* `Matrix.linftyOpNonUnitalSemiNormedRing`
3740
* `Matrix.linftyOpSemiNormedRing`
3841
* `Matrix.linftyOpNonUnitalNormedRing`
@@ -196,6 +199,11 @@ section NormedSpace
196199

197200
attribute [local instance] Matrix.seminormedAddCommGroup
198201

202+
/-- This applies to the sup norm of sup norm. -/
203+
protected theorem boundedSMul [SeminormedRing R] [SeminormedAddCommGroup α] [Module R α]
204+
[BoundedSMul R α] : BoundedSMul R (Matrix m n α) :=
205+
Pi.instBoundedSMul
206+
199207
variable [NormedField R] [SeminormedAddCommGroup α] [NormedSpace R α]
200208

201209
/-- Normed space instance (using sup norm of sup norm) for matrices over a normed space. Not
@@ -238,6 +246,13 @@ protected def linftyOpNormedAddCommGroup [NormedAddCommGroup α] :
238246
(by infer_instance : NormedAddCommGroup (m → PiLp 1 fun j : n => α))
239247
#align matrix.linfty_op_normed_add_comm_group Matrix.linftyOpNormedAddCommGroup
240248

249+
/-- This applies to the sup norm of L1 norm. -/
250+
@[local instance]
251+
protected theorem linftyOpBoundedSMul
252+
[SeminormedRing R] [SeminormedAddCommGroup α] [Module R α] [BoundedSMul R α] :
253+
BoundedSMul R (Matrix m n α) :=
254+
(by infer_instance : BoundedSMul R (m → PiLp 1 fun j : n => α))
255+
241256
/-- Normed space instance (using sup norm of L1 norm) for matrices over a normed space. Not
242257
declared as an instance because there are several natural choices for defining the norm of a
243258
matrix. -/
@@ -485,6 +500,13 @@ def frobeniusNormedAddCommGroup [NormedAddCommGroup α] : NormedAddCommGroup (Ma
485500
(by infer_instance : NormedAddCommGroup (PiLp 2 fun i : m => PiLp 2 fun j : n => α))
486501
#align matrix.frobenius_normed_add_comm_group Matrix.frobeniusNormedAddCommGroup
487502

503+
/-- This applies to the frobenius norm. -/
504+
@[local instance]
505+
theorem frobeniusBoundedSMul [SeminormedRing R] [SeminormedAddCommGroup α] [Module R α]
506+
[BoundedSMul R α] :
507+
BoundedSMul R (Matrix m n α) :=
508+
(by infer_instance : BoundedSMul R (PiLp 2 fun i : m => PiLp 2 fun j : n => α))
509+
488510
/-- Normed space instance (using frobenius norm) for matrices over a normed space. Not
489511
declared as an instance because there are several natural choices for defining the norm of a
490512
matrix. -/

0 commit comments

Comments
 (0)