Documentation

Mathlib.LinearAlgebra.Matrix.Diagonal

Diagonal matrices #

This file contains some results on the linear map corresponding to a diagonal matrix (range, ker and rank).

Tags #

matrix, diagonal, linear_map

theorem Matrix.proj_diagonal {n : Type u_1} [Fintype n] [DecidableEq n] {R : Type v} [CommSemiring R] (i : n) (w : nR) :
theorem Matrix.diagonal_comp_stdBasis {n : Type u_1} [Fintype n] [DecidableEq n] {R : Type v} [CommSemiring R] (w : nR) (i : n) :
LinearMap.comp (Matrix.toLin' (Matrix.diagonal w)) (LinearMap.stdBasis R (fun x => R) i) = w i LinearMap.stdBasis R (fun x => R) i
theorem Matrix.diagonal_toLin' {n : Type u_1} [Fintype n] [DecidableEq n] {R : Type v} [CommSemiring R] (w : nR) :
Matrix.toLin' (Matrix.diagonal w) = LinearMap.pi fun i => w i LinearMap.proj i
theorem Matrix.ker_diagonal_toLin' {m : Type u_1} [Fintype m] {K : Type u} [Semifield K] [DecidableEq m] (w : mK) :
LinearMap.ker (Matrix.toLin' (Matrix.diagonal w)) = ⨆ (i : m) (_ : i {i | w i = 0}), LinearMap.range (LinearMap.stdBasis K (fun x => K) i)
theorem Matrix.range_diagonal {m : Type u_1} [Fintype m] {K : Type u} [Semifield K] [DecidableEq m] (w : mK) :
LinearMap.range (Matrix.toLin' (Matrix.diagonal w)) = ⨆ (i : m) (_ : i {i | w i 0}), LinearMap.range (LinearMap.stdBasis K (fun x => K) i)
theorem LinearMap.rank_diagonal {m : Type u_1} [Fintype m] {K : Type u} [Field K] [DecidableEq m] [DecidableEq K] (w : mK) :
LinearMap.rank (Matrix.toLin' (Matrix.diagonal w)) = ↑(Fintype.card { i // w i 0 })