Documentation

Mathlib.Analysis.NormedSpace.MStructure

M-structure #

A projection P on a normed space X is said to be an L-projection (IsLprojection) if, for all x in X, $\|x\| = \|P x\| + \|(1 - P) x\|$.

A projection P on a normed space X is said to be an M-projection if, for all x in X, $\|x\| = max(\|P x\|,\|(1 - P) x\|)$.

The L-projections on X form a Boolean algebra (IsLprojection.Subtype.BooleanAlgebra).

TODO (Motivational background) #

The M-projections on a normed space form a Boolean algebra.

The range of an L-projection on a normed space X is said to be an L-summand of X. The range of an M-projection is said to be an M-summand of X.

When X is a Banach space, the Boolean algebra of L-projections is complete. Let X be a normed space with dual X^*. A closed subspace M of X is said to be an M-ideal if the topological annihilator M^โˆ˜ is an L-summand of X^*.

M-ideal, M-summands and L-summands were introduced by Alfsen and Effros in [alfseneffros1972] to study the structure of general Banach spaces. When A is a JB*-triple, the M-ideals of A are exactly the norm-closed ideals of A. When A is a JBW*-triple with predual X, the M-summands of A are exactly the weak*-closed ideals, and their pre-duals can be identified with the L-summands of X. In the special case when A is a C*-algebra, the M-ideals are exactly the norm-closed two-sided ideals of A, when A is also a W*-algebra the M-summands are exactly the weak*-closed two-sided ideals of A.

Implementation notes #

The approach to showing that the L-projections form a Boolean algebra is inspired by MeasureTheory.MeasurableSpace.

Instead of using P : X โ†’L[๐•œ] X to represent projections, we use an arbitrary ring M with a faithful action on X. ContinuousLinearMap.apply_module can be used to recover the X โ†’L[๐•œ] X special case.

References #

Tags #

M-summand, M-projection, L-summand, L-projection, M-ideal, M-structure

structure IsLprojection (X : Type u_1) [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] (P : M) :

A projection on a normed space X is said to be an L-projection if, for all x in X, $\|x\| = \|P x\| + \|(1 - P) x\|$.

Note that we write P โ€ข x instead of P x for reasons described in the module docstring.

Instances For
    structure IsMprojection (X : Type u_1) [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] (P : M) :

    A projection on a normed space X is said to be an M-projection if, for all x in X, $\|x\| = max(\|P x\|,\|(1 - P) x\|)$.

    Note that we write P โ€ข x instead of P x for reasons described in the module docstring.

    Instances For
      theorem IsLprojection.Lcomplement {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] {P : M} (h : IsLprojection X P) :
      theorem IsLprojection.Lcomplement_iff {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] (P : M) :
      theorem IsLprojection.commute {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] {P Q : M} (hโ‚ : IsLprojection X P) (hโ‚‚ : IsLprojection X Q) :
      theorem IsLprojection.mul {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] {P Q : M} (hโ‚ : IsLprojection X P) (hโ‚‚ : IsLprojection X Q) :
      theorem IsLprojection.join {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] {P Q : M} (hโ‚ : IsLprojection X P) (hโ‚‚ : IsLprojection X Q) :
      IsLprojection X (P + Q - P * Q)
      instance IsLprojection.Subtype.hasCompl {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] :
      HasCompl { f : M // IsLprojection X f }
      Equations
      • IsLprojection.Subtype.hasCompl = { compl := fun (P : { f : M // IsLprojection X f }) => โŸจ1 - โ†‘P, โ‹ฏโŸฉ }
      @[simp]
      theorem IsLprojection.coe_compl {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] (P : { P : M // IsLprojection X P }) :
      โ†‘Pแถœ = 1 - โ†‘P
      instance IsLprojection.Subtype.inf {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] :
      Min { P : M // IsLprojection X P }
      Equations
      • IsLprojection.Subtype.inf = { min := fun (P Q : { P : M // IsLprojection X P }) => โŸจโ†‘P * โ†‘Q, โ‹ฏโŸฉ }
      @[simp]
      theorem IsLprojection.coe_inf {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
      โ†‘(P โŠ“ Q) = โ†‘P * โ†‘Q
      instance IsLprojection.Subtype.sup {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] :
      Max { P : M // IsLprojection X P }
      Equations
      • IsLprojection.Subtype.sup = { max := fun (P Q : { P : M // IsLprojection X P }) => โŸจโ†‘P + โ†‘Q - โ†‘P * โ†‘Q, โ‹ฏโŸฉ }
      @[simp]
      theorem IsLprojection.coe_sup {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
      โ†‘(P โŠ” Q) = โ†‘P + โ†‘Q - โ†‘P * โ†‘Q
      instance IsLprojection.Subtype.sdiff {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] :
      SDiff { P : M // IsLprojection X P }
      Equations
      • IsLprojection.Subtype.sdiff = { sdiff := fun (P Q : { P : M // IsLprojection X P }) => โŸจโ†‘P * (1 - โ†‘Q), โ‹ฏโŸฉ }
      @[simp]
      theorem IsLprojection.coe_sdiff {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
      โ†‘(P \ Q) = โ†‘P * (1 - โ†‘Q)
      instance IsLprojection.Subtype.partialOrder {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] :
      PartialOrder { P : M // IsLprojection X P }
      Equations
      theorem IsLprojection.le_def {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
      P โ‰ค Q โ†” โ†‘P = โ†‘(P โŠ“ Q)
      instance IsLprojection.Subtype.zero {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] :
      Zero { P : M // IsLprojection X P }
      Equations
      • IsLprojection.Subtype.zero = { zero := โŸจ0, โ‹ฏโŸฉ }
      @[simp]
      theorem IsLprojection.coe_zero {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] :
      โ†‘0 = 0
      instance IsLprojection.Subtype.one {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] :
      One { P : M // IsLprojection X P }
      Equations
      • IsLprojection.Subtype.one = { one := โŸจ1, โ‹ฏโŸฉ }
      @[simp]
      theorem IsLprojection.coe_one {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] :
      โ†‘1 = 1
      instance IsLprojection.Subtype.boundedOrder {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] :
      BoundedOrder { P : M // IsLprojection X P }
      Equations
      • IsLprojection.Subtype.boundedOrder = BoundedOrder.mk
      @[simp]
      theorem IsLprojection.coe_bot {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] :
      โ†‘โŠฅ = 0
      @[simp]
      theorem IsLprojection.coe_top {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] :
      โ†‘โŠค = 1
      theorem IsLprojection.compl_mul {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] {P : { P : M // IsLprojection X P }} {Q : M} :
      โ†‘Pแถœ * Q = Q - โ†‘P * Q
      theorem IsLprojection.mul_compl_self {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] {P : { P : M // IsLprojection X P }} :
      โ†‘P * โ†‘Pแถœ = 0
      theorem IsLprojection.distrib_lattice_lemma {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] {P Q R : { P : M // IsLprojection X P }} :
      (โ†‘P + โ†‘Pแถœ * โ†‘R) * (โ†‘P + โ†‘Q * โ†‘R * โ†‘Pแถœ) = โ†‘P + โ†‘Q * โ†‘R * โ†‘Pแถœ
      Equations
      • IsLprojection.instLatticeSubtypeOfFaithfulSMul = Lattice.mk min โ‹ฏ โ‹ฏ โ‹ฏ
      instance IsLprojection.Subtype.distribLattice {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] :
      DistribLattice { P : M // IsLprojection X P }
      Equations
      instance IsLprojection.Subtype.BooleanAlgebra {X : Type u_1} [NormedAddCommGroup X] {M : Type u_2} [Ring M] [Module M X] [FaithfulSMul M X] :
      BooleanAlgebra { P : M // IsLprojection X P }
      Equations
      • IsLprojection.Subtype.BooleanAlgebra = BooleanAlgebra.mk โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ