import RNLAPhaseB.B3Base import RNLAPhaseB.Complexity open MeasureTheory open scoped Matrix open scoped Matrix.Norms.L2Operator open scoped BigOperators open scoped ENNReal namespace RNLAPhaseB.HMT2011.PropProjPower /-- `P` is an orthogonal projector: idempotent and self-adjoint. -/ def IsOrthogonalProjector {๐•œ : Type*} [RCLike ๐•œ] {m : โ„•} (P : Matrix (Fin m) (Fin m) ๐•œ) : Prop := P * P = P โˆง Pแดด = P /-- The real power `A ^ q` of a square matrix, defined by the continuous functional calculus `cfc (fun x => x ^ q) A`. For a Hermitian `A = U diag(ฮป) U^*` this is `U diag(ฮป^q) U^*`. It is used below only for the psd matrix `A = M Mแดด`, whose eigenvalues are nonnegative, so `ฮป ^ q` is the ordinary real power. -/ noncomputable def psdRpow {๐•œ : Type*} [RCLike ๐•œ] {m : โ„•} (A : Matrix (Fin m) (Fin m) ๐•œ) (q : โ„) : Matrix (Fin m) (Fin m) ๐•œ := cfc (fun x : โ„ => x ^ q) A /-- Sanity check: for natural-number exponents, `psdRpow (M Mแดด) k` is the ordinary monoid power `(M Mแดด) ^ k`. -/ theorem psdRpow_natCast {๐•œ : Type*} [RCLike ๐•œ] {m n : โ„•} (M : Matrix (Fin m) (Fin n) ๐•œ) (k : โ„•) : psdRpow (M * Mแดด) (k : โ„) = (M * Mแดด) ^ k := by unfold psdRpow have h : IsSelfAdjoint (M * Mแดด) := by simpa [IsSelfAdjoint, Matrix.star_eq_conjTranspose] using (Matrix.isHermitian_mul_conjTranspose_self M) simp only [Real.rpow_natCast] rw [cfc_pow_id (M * Mแดด) k h] /-- HMT 2011, Proposition (prop:proj-power). Let `P` be an orthogonal projector and let `M` be a matrix. For each positive number `q`, `โ€–P Mโ€– โ‰ค โ€–P (M M^*)^q Mโ€–^{1/(2q+1)}`, where `โ€–ยทโ€–` is the spectral (โ„“โ‚‚ operator) norm. The source says "each positive number q" and does not restrict `q` to integers, so `q` ranges over real numbers `q > 0`. `(M M^*)^q` is the real power of the psd matrix `M Mแดด`, given by the functional calculus (`psdRpow`). For natural `q` it coincides with the monoid power (`psdRpow_natCast`). -/ theorem proj_power {๐•œ : Type*} [RCLike ๐•œ] {m n : โ„•} (P : Matrix (Fin m) (Fin m) ๐•œ) (hP : IsOrthogonalProjector P) (M : Matrix (Fin m) (Fin n) ๐•œ) (q : โ„) (hq : 0 < q) : โ€–P * Mโ€– โ‰ค โ€–P * psdRpow (M * Mแดด) q * Mโ€– ^ ((1 : โ„) / (2 * q + 1)) := by sorry end RNLAPhaseB.HMT2011.PropProjPower