Exact source: MathlibAnnex/Analysis/CStarAlgebra/CAR/RootCorner.lean
Pinned GitHub source · Raw UTF-8 source
Back to The product-vector state on the completed CAR algebra
1import MathlibAnnex.Analysis.CStarAlgebra.CAR.FiniteStages2import Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Instances3import Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Order4import Mathlib.Analysis.CStarAlgebra.PositiveLinearMap56/-!7# The finite-stage root corner89The distinguished coordinate defines the product-vector functional at every binary10matrix stage. Its rank-one corner has an exact compression formula for every stage11element, before any completion or limiting argument is used.12-/1314set_option autoImplicit false1516open scoped CStarAlgebra ComplexOrder Matrix1718namespace MathlibAnnex.CStarAlgebra.CAR1920/-- The rank-one projection onto the distinguished zero coordinate. -/21noncomputable def rootProjection (n : ℕ) : Stage n :=22 CStarMatrix.ofMatrix (Matrix.single 0 0 (1 : ℂ))2324/-- Exact finite-stage compression by the distinguished rank-one projection. -/25theorem rootProjection_mul_mul (n : ℕ) (x : Stage n) :26 rootProjection n * x * rootProjection n = (x 0 0) • rootProjection n := by27 classical28 apply CStarMatrix.ext29 intro i j30 by_cases hi : i = 0 <;> by_cases hj : j = 031 · subst i32 subst j33 simp [rootProjection, CStarMatrix.mul_apply, Matrix.single]34 · subst i35 simp [rootProjection, CStarMatrix.mul_apply, Matrix.single, Ne.symm hj]36 · simp [rootProjection, CStarMatrix.mul_apply, Matrix.single, Ne.symm hi]37 · simp [rootProjection, CStarMatrix.mul_apply, Matrix.single, Ne.symm hi,38 Ne.symm hj]3940/-- The finite-stage compression error vanishes for every stage element. -/41@[simp]42theorem norm_rootProjection_compression_sub (n : ℕ) (x : Stage n) :43 ‖rootProjection n * x * rootProjection n - (x 0 0) • rootProjection n‖ = 0 := by44 rw [rootProjection_mul_mul, sub_self, norm_zero]4546theorem isStarProjection_rootProjection (n : ℕ) :47 IsStarProjection (rootProjection n) := by48 constructor49 · rw [isIdempotentElem_iff]50 simpa using rootProjection_mul_mul n (1 : Stage n)51 · rw [isSelfAdjoint_iff]52 apply CStarMatrix.ext53 intro i j54 simp [rootProjection, CStarMatrix.star_apply, Matrix.single, and_comm]5556/-- Evaluation at the distinguished diagonal coordinate. -/57def rootLinear (n : ℕ) : Stage n →ₗ[ℂ] ℂ where58 toFun x := x 0 059 map_add' _ _ := rfl60 map_smul' _ _ := rfl6162/-- The distinguished-coordinate functional is continuous for the operator norm. -/63noncomputable def rootFunctional (n : ℕ) : Stage n →L[ℂ] ℂ :=64 (rootLinear n).mkContinuous 1 fun x => by65 simpa [rootLinear] using (CStarMatrix.norm_entry_le_norm (M := x) (i := (0 : Fin (2 ^ n)))66 (j := (0 : Fin (2 ^ n))))6768@[simp]69theorem rootFunctional_apply (n : ℕ) (x : Stage n) : rootFunctional n x = x 0 0 :=70 rfl7172/-- The root vector functionals are compatible with the standard CAR stage embeddings. -/73@[simp]74theorem rootFunctional_step (n : ℕ) (x : Stage n) :75 rootFunctional (n + 1) (step n x) = rootFunctional n x := by76 change step n x 0 0 = x 0 077 simp [step, stepIndexEquiv, amplify, Matrix.reindex_apply, finProdFinEquiv]78 congr 1 <;> apply Fin.ext <;> simp7980/-- One-step local compression is exact after embedding an arbitrary old-stage element. -/81theorem rootProjection_step_mul_mul (n : ℕ) (x : Stage n) :82 rootProjection (n + 1) * step n x * rootProjection (n + 1) =83 (x 0 0) • rootProjection (n + 1) := by84 rw [rootProjection_mul_mul]85 congr 186 exact rootFunctional_step n x8788@[simp]89theorem norm_rootProjection_step_compression_sub (n : ℕ) (x : Stage n) :90 ‖rootProjection (n + 1) * step n x * rootProjection (n + 1) -91 (x 0 0) • rootProjection (n + 1)‖ = 0 := by92 rw [rootProjection_step_mul_mul, sub_self, norm_zero]9394/-- Positivity of the distinguished-coordinate functional. -/95theorem rootLinear_nonneg (n : ℕ) (x : Stage n) (hx : 0 ≤ x) :96 0 ≤ rootLinear n x := by97 letI : NonnegSpectrumClass ℝ (Stage n) :=98 CStarAlgebra.instNonnegSpectrumClass'99 letI : NonUnitalContinuousFunctionalCalculus ℂ (Stage n) IsStarNormal :=100 (IsStarNormal.instNonUnitalContinuousFunctionalCalculus101 (A := Stage n)).toNonUnitalContinuousFunctionalCalculus102 letI : NonUnitalContinuousFunctionalCalculus ℝ (Stage n) IsSelfAdjoint :=103 IsSelfAdjoint.instNonUnitalContinuousFunctionalCalculus104 rcases CStarAlgebra.nonneg_iff_eq_star_mul_self.mp hx with ⟨y, rfl⟩105 change 0 ≤ (star y * y) 0 0106 rw [CStarMatrix.mul_apply]107 simp only [CStarMatrix.star_apply]108 exact Finset.sum_nonneg fun k _ => star_mul_self_nonneg (y k 0)109110/-- The normalized positive functional at the root coordinate. -/111noncomputable def rootPositiveFunctional (n : ℕ) : Stage n →ₚ[ℂ] ℂ :=112 PositiveLinearMap.mk₀ (rootLinear n) (rootLinear_nonneg n)113114@[simp]115theorem rootPositiveFunctional_apply (n : ℕ) (x : Stage n) :116 rootPositiveFunctional n x = x 0 0 := rfl117118@[simp]119theorem rootPositiveFunctional_one (n : ℕ) : rootPositiveFunctional n 1 = 1 := by120 exact CStarMatrix.one_apply_eq 0121122@[simp]123theorem rootPositiveFunctional_step (n : ℕ) (x : Stage n) :124 rootPositiveFunctional (n + 1) (step n x) = rootPositiveFunctional n x := by125 exact rootFunctional_step n x126127end MathlibAnnex.CStarAlgebra.CAR