File: Mathlib/Analysis/Matrix.lean

full_name: Matrix.seminormedAddCommGroup
code: /-- Seminormed group instance (using sup norm of sup norm) for matrices over a seminormed group. Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
protected def seminormedAddCommGroup : SeminormedAddCommGroup (Matrix m n α) 
goal: SeminormedAddCommGroup (Matrix m n α)

full_name: Matrix.norm_def
code: theorem norm_def (A : Matrix m n α) : ‖A‖ = ‖fun i j => A i j‖ 
goal: ‖A‖ = ‖fun i j => A i j‖

full_name: Matrix.norm_eq_sup_sup_nnnorm
code: /-- The norm of a matrix is the sup of the sup of the nnnorm of the entries -/
lemma norm_eq_sup_sup_nnnorm (A : Matrix m n α) :
    ‖A‖ = Finset.sup Finset.univ fun i ↦ Finset.sup Finset.univ fun j ↦ ‖A i j‖₊ 
goal: ‖A‖ = ↑(Finset.univ.sup fun i => Finset.univ.sup fun j => ‖A i j‖₊)

full_name: Matrix.nnnorm_def
code: theorem nnnorm_def (A : Matrix m n α) : ‖A‖₊ = ‖fun i j => A i j‖₊ 
goal: ‖A‖₊ = ‖fun i j => A i j‖₊

full_name: Matrix.norm_le_iff
code: theorem norm_le_iff {r : ℝ} (hr : 0 ≤ r) {A : Matrix m n α} : ‖A‖ ≤ r ↔ ∀ i j, ‖A i j‖ ≤ r 
goal: ‖A‖ ≤ r ↔ ∀ (i : m) (j : n), ‖A i j‖ ≤ r

full_name: Matrix.nnnorm_le_iff
code: theorem nnnorm_le_iff {r : ℝ≥0} {A : Matrix m n α} : ‖A‖₊ ≤ r ↔ ∀ i j, ‖A i j‖₊ ≤ r 
goal: ‖A‖₊ ≤ r ↔ ∀ (i : m) (j : n), ‖A i j‖₊ ≤ r

full_name: Matrix.norm_lt_iff
code: theorem norm_lt_iff {r : ℝ} (hr : 0 < r) {A : Matrix m n α} : ‖A‖ < r ↔ ∀ i j, ‖A i j‖ < r 
goal: ‖A‖ < r ↔ ∀ (i : m) (j : n), ‖A i j‖ < r

full_name: Matrix.nnnorm_lt_iff
code: theorem nnnorm_lt_iff {r : ℝ≥0} (hr : 0 < r) {A : Matrix m n α} :
    ‖A‖₊ < r ↔ ∀ i j, ‖A i j‖₊ < r 
goal: ‖A‖₊ < r ↔ ∀ (i : m) (j : n), ‖A i j‖₊ < r

full_name: Matrix.norm_entry_le_entrywise_sup_norm
code: theorem norm_entry_le_entrywise_sup_norm (A : Matrix m n α) {i : m} {j : n} : ‖A i j‖ ≤ ‖A‖ 
goal: ‖A i j‖ ≤ ‖A‖

full_name: Matrix.nnnorm_entry_le_entrywise_sup_nnnorm
code: theorem nnnorm_entry_le_entrywise_sup_nnnorm (A : Matrix m n α) {i : m} {j : n} : ‖A i j‖₊ ≤ ‖A‖₊ 
goal: ‖A i j‖₊ ≤ ‖A‖₊

full_name: Matrix.nnnorm_map_eq
code: @[simp]
theorem nnnorm_map_eq (A : Matrix m n α) (f : α → β) (hf : ∀ a, ‖f a‖₊ = ‖a‖₊) :
    ‖A.map f‖₊ = ‖A‖₊ 
goal: ‖A.map f‖₊ = ‖A‖₊

full_name: Matrix.norm_map_eq
code: @[simp]
theorem norm_map_eq (A : Matrix m n α) (f : α → β) (hf : ∀ a, ‖f a‖ = ‖a‖) : ‖A.map f‖ = ‖A‖ 
goal: ‖A.map f‖ = ‖A‖

full_name: Matrix.nnnorm_transpose
code: @[simp]
theorem nnnorm_transpose (A : Matrix m n α) : ‖Aᵀ‖₊ = ‖A‖₊ 
goal: ‖Aᵀ‖₊ = ‖A‖₊

full_name: Matrix.norm_transpose
code: @[simp]
theorem norm_transpose (A : Matrix m n α) : ‖Aᵀ‖ = ‖A‖ 
goal: ‖Aᵀ‖ = ‖A‖

full_name: Matrix.nnnorm_conjTranspose
code: @[simp]
theorem nnnorm_conjTranspose [StarAddMonoid α] [NormedStarGroup α] (A : Matrix m n α) :
    ‖Aᴴ‖₊ = ‖A‖₊ 
goal: ‖Aᴴ‖₊ = ‖A‖₊

full_name: Matrix.norm_conjTranspose
code: @[simp]
theorem norm_conjTranspose [StarAddMonoid α] [NormedStarGroup α] (A : Matrix m n α) : ‖Aᴴ‖ = ‖A‖ 
goal: ‖Aᴴ‖ = ‖A‖

full_name: Matrix.instNormedStarGroup
code: instance [StarAddMonoid α] [NormedStarGroup α] : NormedStarGroup (Matrix m m α) 
goal: NormedStarGroup (Matrix m m α)

full_name: Matrix.nnnorm_col
code: @[simp]
theorem nnnorm_col (v : m → α) : ‖col ι v‖₊ = ‖v‖₊ 
goal: ‖Matrix.col ι v‖₊ = ‖v‖₊

full_name: Matrix.norm_col
code: @[simp]
theorem norm_col (v : m → α) : ‖col ι v‖ = ‖v‖ 
goal: ‖Matrix.col ι v‖ = ‖v‖

full_name: Matrix.nnnorm_row
code: @[simp]
theorem nnnorm_row (v : n → α) : ‖row ι v‖₊ = ‖v‖₊ 
goal: ‖Matrix.row ι v‖₊ = ‖v‖₊

full_name: Matrix.norm_row
code: @[simp]
theorem norm_row (v : n → α) : ‖row ι v‖ = ‖v‖ 
goal: ‖Matrix.row ι v‖ = ‖v‖

full_name: Matrix.nnnorm_diagonal
code: @[simp]
theorem nnnorm_diagonal [DecidableEq n] (v : n → α) : ‖diagonal v‖₊ = ‖v‖₊ 
goal: ‖Matrix.diagonal v‖₊ = ‖v‖₊

full_name: Matrix.norm_diagonal
code: @[simp]
theorem norm_diagonal [DecidableEq n] (v : n → α) : ‖diagonal v‖ = ‖v‖ 
goal: ‖Matrix.diagonal v‖ = ‖v‖

full_name: Matrix.instNormOneClassOfNonempty
code: /-- Note this is safe as an instance as it carries no data. -/
-- Porting note: not yet implemented: `@[nolint fails_quickly]`
instance [Nonempty n] [DecidableEq n] [One α] [NormOneClass α] : NormOneClass (Matrix n n α) 
goal: NormOneClass (Matrix n n α)

full_name: Matrix.normedAddCommGroup
code: /-- Normed group instance (using sup norm of sup norm) for matrices over a normed group.  Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
protected def normedAddCommGroup [NormedAddCommGroup α] : NormedAddCommGroup (Matrix m n α) 
goal: NormedAddCommGroup (Matrix m n α)

full_name: Matrix.boundedSMul
code: /-- This applies to the sup norm of sup norm. -/
protected theorem boundedSMul [SeminormedRing R] [SeminormedAddCommGroup α] [Module R α]
    [BoundedSMul R α] : BoundedSMul R (Matrix m n α) 
goal: BoundedSMul R (Matrix m n α)

full_name: Matrix.normedSpace
code: /-- Normed space instance (using sup norm of sup norm) for matrices over a normed space.  Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
protected def normedSpace : NormedSpace R (Matrix m n α) 
goal: NormedSpace R (Matrix m n α)

full_name: Matrix.linftyOpSeminormedAddCommGroup
code: /-- Seminormed group instance (using sup norm of L1 norm) for matrices over a seminormed group. Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
protected def linftyOpSeminormedAddCommGroup [SeminormedAddCommGroup α] :
    SeminormedAddCommGroup (Matrix m n α) 
goal: SeminormedAddCommGroup (Matrix m n α)

full_name: Matrix.linftyOpNormedAddCommGroup
code: /-- Normed group instance (using sup norm of L1 norm) for matrices over a normed ring.  Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
protected def linftyOpNormedAddCommGroup [NormedAddCommGroup α] :
    NormedAddCommGroup (Matrix m n α) 
goal: NormedAddCommGroup (Matrix m n α)

full_name: Matrix.linftyOpBoundedSMul
code: /-- This applies to the sup norm of L1 norm. -/
@[local instance]
protected theorem linftyOpBoundedSMul
    [SeminormedRing R] [SeminormedAddCommGroup α] [Module R α] [BoundedSMul R α] :
    BoundedSMul R (Matrix m n α) 
goal: BoundedSMul R (Matrix m n α)

full_name: Matrix.linftyOpNormedSpace
code: /-- Normed space instance (using sup norm of L1 norm) for matrices over a normed space.  Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
protected def linftyOpNormedSpace [NormedField R] [SeminormedAddCommGroup α] [NormedSpace R α] :
    NormedSpace R (Matrix m n α) 
goal: NormedSpace R (Matrix m n α)

full_name: Matrix.linfty_opNorm_def
code: theorem linfty_opNorm_def (A : Matrix m n α) :
    ‖A‖ = ((Finset.univ : Finset m).sup fun i : m => ∑ j : n, ‖A i j‖₊ : ℝ≥0) 
goal: ‖A‖ = ↑(Finset.univ.sup fun i => ∑ j : n, ‖A i j‖₊)

full_name: Matrix.linfty_opNNNorm_def
code: theorem linfty_opNNNorm_def (A : Matrix m n α) :
    ‖A‖₊ = (Finset.univ : Finset m).sup fun i : m => ∑ j : n, ‖A i j‖₊ 
goal: ‖A‖₊ = Finset.univ.sup fun i => ∑ j : n, ‖A i j‖₊

full_name: Matrix.linfty_opNNNorm_col
code: @[simp]
theorem linfty_opNNNorm_col (v : m → α) : ‖col ι v‖₊ = ‖v‖₊ 
goal: ‖Matrix.col ι v‖₊ = ‖v‖₊

full_name: Matrix.linfty_opNorm_col
code: @[simp]
theorem linfty_opNorm_col (v : m → α) : ‖col ι v‖ = ‖v‖ 
goal: ‖Matrix.col ι v‖ = ‖v‖

full_name: Matrix.linfty_opNNNorm_row
code: @[simp]
theorem linfty_opNNNorm_row (v : n → α) : ‖row ι v‖₊ = ∑ i, ‖v i‖₊ 
goal: ‖Matrix.row ι v‖₊ = ∑ i : n, ‖v i‖₊

full_name: Matrix.linfty_opNorm_row
code: @[simp]
theorem linfty_opNorm_row (v : n → α) : ‖row ι v‖ = ∑ i, ‖v i‖ 
goal: ‖Matrix.row ι v‖ = ∑ i : n, ‖v i‖

full_name: Matrix.linfty_opNNNorm_diagonal
code: @[simp]
theorem linfty_opNNNorm_diagonal [DecidableEq m] (v : m → α) : ‖diagonal v‖₊ = ‖v‖₊ 
goal: ‖Matrix.diagonal v‖₊ = ‖v‖₊

full_name: Matrix.linfty_opNorm_diagonal
code: @[simp]
theorem linfty_opNorm_diagonal [DecidableEq m] (v : m → α) : ‖diagonal v‖ = ‖v‖ 
goal: ‖Matrix.diagonal v‖ = ‖v‖

full_name: Matrix.linfty_opNNNorm_mul
code: theorem linfty_opNNNorm_mul (A : Matrix l m α) (B : Matrix m n α) : ‖A * B‖₊ ≤ ‖A‖₊ * ‖B‖₊ 
goal: ‖A * B‖₊ ≤ ‖A‖₊ * ‖B‖₊

full_name: Matrix.linfty_opNorm_mul
code: theorem linfty_opNorm_mul (A : Matrix l m α) (B : Matrix m n α) : ‖A * B‖ ≤ ‖A‖ * ‖B‖ 
goal: ‖A * B‖ ≤ ‖A‖ * ‖B‖

full_name: Matrix.linfty_opNNNorm_mulVec
code: theorem linfty_opNNNorm_mulVec (A : Matrix l m α) (v : m → α) : ‖A *ᵥ v‖₊ ≤ ‖A‖₊ * ‖v‖₊ 
goal: ‖A *ᵥ v‖₊ ≤ ‖A‖₊ * ‖v‖₊

full_name: Matrix.linfty_opNorm_mulVec
code: theorem linfty_opNorm_mulVec (A : Matrix l m α) (v : m → α) : ‖A *ᵥ v‖ ≤ ‖A‖ * ‖v‖ 
goal: ‖A *ᵥ v‖ ≤ ‖A‖ * ‖v‖

full_name: Matrix.linftyOpNonUnitalSemiNormedRing
code: /-- Seminormed non-unital ring instance (using sup norm of L1 norm) for matrices over a semi normed
non-unital ring. Not declared as an instance because there are several natural choices for defining
the norm of a matrix. -/
@[local instance]
protected def linftyOpNonUnitalSemiNormedRing [NonUnitalSeminormedRing α] :
    NonUnitalSeminormedRing (Matrix n n α) 
goal: NonUnitalSeminormedRing (Matrix n n α)

full_name: Matrix.linfty_opNormOneClass
code: /-- The `L₁-L∞` norm preserves one on non-empty matrices. Note this is safe as an instance, as it
carries no data. -/
instance linfty_opNormOneClass [SeminormedRing α] [NormOneClass α] [DecidableEq n] [Nonempty n] :
    NormOneClass (Matrix n n α) 
goal: NormOneClass (Matrix n n α)

full_name: Matrix.linftyOpSemiNormedRing
code: /-- Seminormed ring instance (using sup norm of L1 norm) for matrices over a semi normed ring.  Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
protected def linftyOpSemiNormedRing [SeminormedRing α] [DecidableEq n] :
    SeminormedRing (Matrix n n α) 
goal: SeminormedRing (Matrix n n α)

full_name: Matrix.linftyOpNonUnitalNormedRing
code: /-- Normed non-unital ring instance (using sup norm of L1 norm) for matrices over a normed
non-unital ring. Not declared as an instance because there are several natural choices for defining
the norm of a matrix. -/
@[local instance]
protected def linftyOpNonUnitalNormedRing [NonUnitalNormedRing α] :
    NonUnitalNormedRing (Matrix n n α) 
goal: NonUnitalNormedRing (Matrix n n α)

full_name: Matrix.linftyOpNormedRing
code: /-- Normed ring instance (using sup norm of L1 norm) for matrices over a normed ring.  Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
protected def linftyOpNormedRing [NormedRing α] [DecidableEq n] : NormedRing (Matrix n n α) 
goal: NormedRing (Matrix n n α)

full_name: Matrix.linftyOpNormedAlgebra
code: /-- Normed algebra instance (using sup norm of L1 norm) for matrices over a normed algebra. Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
protected def linftyOpNormedAlgebra [NormedField R] [SeminormedRing α] [NormedAlgebra R α]
    [DecidableEq n] : NormedAlgebra R (Matrix n n α) 
goal: NormedAlgebra R (Matrix n n α)

full_name: _private.Mathlib.Analysis.Matrix.0.Matrix.unitOf
code: /-- Auxiliary construction; an element of norm 1 such that `a * unitOf a = ‖a‖`. -/
private def unitOf (a : α) : α 
goal: α

full_name: _private.Mathlib.Analysis.Matrix.0.Matrix.norm_unitOf
code: private theorem norm_unitOf (a : α) : ‖unitOf a‖₊ = 1 
goal: ‖Matrix.unitOf a‖₊ = 1

full_name: _private.Mathlib.Analysis.Matrix.0.Matrix.mul_unitOf
code: private theorem mul_unitOf (a : α) : a * unitOf a = algebraMap _ _ (‖a‖₊ : ℝ)  
goal: a * Matrix.unitOf a = (algebraMap ℝ α) ↑‖a‖₊

full_name: Matrix.linfty_opNNNorm_eq_opNNNorm
code: lemma linfty_opNNNorm_eq_opNNNorm (A : Matrix m n α) :
    ‖A‖₊ = ‖ContinuousLinearMap.mk (Matrix.mulVecLin A)‖₊ 
goal: ‖A‖₊ = ‖{ toLinearMap := A.mulVecLin, cont := ⋯ }‖₊

full_name: Matrix.linfty_opNorm_eq_opNorm
code: lemma linfty_opNorm_eq_opNorm (A : Matrix m n α) :
    ‖A‖ = ‖ContinuousLinearMap.mk (Matrix.mulVecLin A)‖ 
goal: ‖A‖ = ‖{ toLinearMap := A.mulVecLin, cont := ⋯ }‖

full_name: Matrix.linfty_opNNNorm_toMatrix
code: @[simp] lemma linfty_opNNNorm_toMatrix (f : (n → α) →L[α] (m → α)) :
    ‖LinearMap.toMatrix' (↑f : (n → α) →ₗ[α] (m → α))‖₊ = ‖f‖₊ 
goal: ‖LinearMap.toMatrix' ↑f‖₊ = ‖f‖₊

full_name: Matrix.linfty_opNorm_toMatrix
code: @[simp] lemma linfty_opNorm_toMatrix (f : (n → α) →L[α] (m → α)) :
    ‖LinearMap.toMatrix' (↑f : (n → α) →ₗ[α] (m → α))‖ = ‖f‖ 
goal: ‖LinearMap.toMatrix' ↑f‖ = ‖f‖

full_name: Matrix.frobeniusSeminormedAddCommGroup
code: /-- Seminormed group instance (using frobenius norm) for matrices over a seminormed group. Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
def frobeniusSeminormedAddCommGroup [SeminormedAddCommGroup α] :
    SeminormedAddCommGroup (Matrix m n α) 
goal: SeminormedAddCommGroup (Matrix m n α)

full_name: Matrix.frobeniusNormedAddCommGroup
code: /-- Normed group instance (using frobenius norm) for matrices over a normed group.  Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
def frobeniusNormedAddCommGroup [NormedAddCommGroup α] : NormedAddCommGroup (Matrix m n α) 
goal: NormedAddCommGroup (Matrix m n α)

full_name: Matrix.frobeniusBoundedSMul
code: /-- This applies to the frobenius norm. -/
@[local instance]
theorem frobeniusBoundedSMul [SeminormedRing R] [SeminormedAddCommGroup α] [Module R α]
    [BoundedSMul R α] :
    BoundedSMul R (Matrix m n α) 
goal: BoundedSMul R (Matrix m n α)

full_name: Matrix.frobeniusNormedSpace
code: /-- Normed space instance (using frobenius norm) for matrices over a normed space.  Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
def frobeniusNormedSpace [NormedField R] [SeminormedAddCommGroup α] [NormedSpace R α] :
    NormedSpace R (Matrix m n α) 
goal: NormedSpace R (Matrix m n α)

full_name: Matrix.frobenius_nnnorm_def
code: theorem frobenius_nnnorm_def (A : Matrix m n α) :
    ‖A‖₊ = (∑ i, ∑ j, ‖A i j‖₊ ^ (2 : ℝ)) ^ (1 / 2 : ℝ) 
goal: ‖A‖₊ = (∑ i : m, ∑ j : n, ‖A i j‖₊ ^ 2) ^ (1 / 2)

full_name: Matrix.frobenius_norm_def
code: theorem frobenius_norm_def (A : Matrix m n α) :
    ‖A‖ = (∑ i, ∑ j, ‖A i j‖ ^ (2 : ℝ)) ^ (1 / 2 : ℝ) 
goal: ‖A‖ = (∑ i : m, ∑ j : n, ‖A i j‖ ^ 2) ^ (1 / 2)

full_name: Matrix.frobenius_nnnorm_map_eq
code: @[simp]
theorem frobenius_nnnorm_map_eq (A : Matrix m n α) (f : α → β) (hf : ∀ a, ‖f a‖₊ = ‖a‖₊) :
    ‖A.map f‖₊ = ‖A‖₊ 
goal: ‖A.map f‖₊ = ‖A‖₊

full_name: Matrix.frobenius_norm_map_eq
code: @[simp]
theorem frobenius_norm_map_eq (A : Matrix m n α) (f : α → β) (hf : ∀ a, ‖f a‖ = ‖a‖) :
    ‖A.map f‖ = ‖A‖ 
goal: ‖A.map f‖ = ‖A‖

full_name: Matrix.frobenius_nnnorm_transpose
code: @[simp]
theorem frobenius_nnnorm_transpose (A : Matrix m n α) : ‖Aᵀ‖₊ = ‖A‖₊ 
goal: ‖Aᵀ‖₊ = ‖A‖₊

full_name: Matrix.frobenius_norm_transpose
code: @[simp]
theorem frobenius_norm_transpose (A : Matrix m n α) : ‖Aᵀ‖ = ‖A‖ 
goal: ‖Aᵀ‖ = ‖A‖

full_name: Matrix.frobenius_nnnorm_conjTranspose
code: @[simp]
theorem frobenius_nnnorm_conjTranspose [StarAddMonoid α] [NormedStarGroup α] (A : Matrix m n α) :
    ‖Aᴴ‖₊ = ‖A‖₊ 
goal: ‖Aᴴ‖₊ = ‖A‖₊

full_name: Matrix.frobenius_norm_conjTranspose
code: @[simp]
theorem frobenius_norm_conjTranspose [StarAddMonoid α] [NormedStarGroup α] (A : Matrix m n α) :
    ‖Aᴴ‖ = ‖A‖ 
goal: ‖Aᴴ‖ = ‖A‖

full_name: Matrix.frobenius_normedStarGroup
code: instance frobenius_normedStarGroup [StarAddMonoid α] [NormedStarGroup α] :
    NormedStarGroup (Matrix m m α) 
goal: NormedStarGroup (Matrix m m α)

full_name: Matrix.frobenius_norm_row
code: @[simp]
theorem frobenius_norm_row (v : m → α) : ‖row ι v‖ = ‖(WithLp.equiv 2 _).symm v‖ 
goal: ‖Matrix.row ι v‖ = ‖(WithLp.equiv 2 (m → α)).symm v‖

full_name: Matrix.frobenius_nnnorm_row
code: @[simp]
theorem frobenius_nnnorm_row (v : m → α) : ‖row ι v‖₊ = ‖(WithLp.equiv 2 _).symm v‖₊ 
goal: ‖Matrix.row ι v‖₊ = ‖(WithLp.equiv 2 (m → α)).symm v‖₊

full_name: Matrix.frobenius_norm_col
code: @[simp]
theorem frobenius_norm_col (v : n → α) : ‖col ι v‖ = ‖(WithLp.equiv 2 _).symm v‖ 
goal: ‖Matrix.col ι v‖ = ‖(WithLp.equiv 2 (n → α)).symm v‖

full_name: Matrix.frobenius_nnnorm_col
code: @[simp]
theorem frobenius_nnnorm_col (v : n → α) : ‖col ι v‖₊ = ‖(WithLp.equiv 2 _).symm v‖₊ 
goal: ‖Matrix.col ι v‖₊ = ‖(WithLp.equiv 2 (n → α)).symm v‖₊

full_name: Matrix.frobenius_nnnorm_diagonal
code: @[simp]
theorem frobenius_nnnorm_diagonal [DecidableEq n] (v : n → α) :
    ‖diagonal v‖₊ = ‖(WithLp.equiv 2 _).symm v‖₊ 
goal: ‖Matrix.diagonal v‖₊ = ‖(WithLp.equiv 2 (n → α)).symm v‖₊

full_name: Matrix.frobenius_norm_diagonal
code: @[simp]
theorem frobenius_norm_diagonal [DecidableEq n] (v : n → α) :
    ‖diagonal v‖ = ‖(WithLp.equiv 2 _).symm v‖ 
goal: ‖Matrix.diagonal v‖ = ‖(WithLp.equiv 2 (n → α)).symm v‖

full_name: Matrix.frobenius_nnnorm_one
code: theorem frobenius_nnnorm_one [DecidableEq n] [SeminormedAddCommGroup α] [One α] :
    ‖(1 : Matrix n n α)‖₊ = NNReal.sqrt (Fintype.card n) * ‖(1 : α)‖₊ 
goal: ‖1‖₊ = NNReal.sqrt ↑(Fintype.card n) * ‖1‖₊

full_name: Matrix.frobenius_nnnorm_mul
code: theorem frobenius_nnnorm_mul (A : Matrix l m α) (B : Matrix m n α) : ‖A * B‖₊ ≤ ‖A‖₊ * ‖B‖₊ 
goal: ‖A * B‖₊ ≤ ‖A‖₊ * ‖B‖₊

full_name: Matrix.frobenius_norm_mul
code: theorem frobenius_norm_mul (A : Matrix l m α) (B : Matrix m n α) : ‖A * B‖ ≤ ‖A‖ * ‖B‖ 
goal: ‖A * B‖ ≤ ‖A‖ * ‖B‖

full_name: Matrix.frobeniusNormedRing
code: /-- Normed ring instance (using frobenius norm) for matrices over `ℝ` or `ℂ`.  Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
def frobeniusNormedRing [DecidableEq m] : NormedRing (Matrix m m α) 
goal: NormedRing (Matrix m m α)

full_name: Matrix.frobeniusNormedAlgebra
code: /-- Normed algebra instance (using frobenius norm) for matrices over `ℝ` or `ℂ`.  Not
declared as an instance because there are several natural choices for defining the norm of a
matrix. -/
@[local instance]
def frobeniusNormedAlgebra [DecidableEq m] [NormedField R] [NormedAlgebra R α] :
    NormedAlgebra R (Matrix m m α) 
goal: NormedAlgebra R (Matrix m m α)