Documentation

CsdLean4.Mathlib.LinearAlgebra.Projectivization.UnitSection

A measurable unit section of the ray map #

Category: 1-Mathlib (CSD-free; staged as a Mathlib-upstream candidate).

The ray map mk : {v // v โ‰  0} โ†’ โ„™ ๐•œ (EuclideanSpace ๐•œ ฮน) has no continuous section (the tautological bundle is non-trivial), but it has a measurable one, and a canonical one: send a ray to its unit-norm representative whose first non-zero coordinate is real and positive.

This discharges the hypothesis every preparation-level construction of the corpus takes (a unit-norm measurable rep with mk (rep p) = p): Projectivization.unitSection is such a rep, for every finite-dimensional EuclideanSpace over โ„ or โ„‚.

References: CsdLean4/Mathlib/LinearAlgebra/Projectivization/MeasureSpace.lean (lift_measurable); CsdLean4/LF2/FlowChannel.lean (isUnitaryLift_unitSection, the consumer); specs/qit-chain-scoping.md (W6โ€ณ).

The first non-zero coordinate #

def Projectivization.coordSupport {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] (v : EuclideanSpace ๐•œ ฮน) :
Finset ฮน

The support of a vector, as a finset of coordinates.

Equations
Instances For
    theorem Projectivization.mem_coordSupport {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] {v : EuclideanSpace ๐•œ ฮน} {i : ฮน} :
    theorem Projectivization.coordSupport_nonempty {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] {v : EuclideanSpace ๐•œ ฮน} (hv : v โ‰  0) :
    theorem Projectivization.coordSupport_smul {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] {v : EuclideanSpace ๐•œ ฮน} {t : ๐•œ} (ht : t โ‰  0) :
    noncomputable def Projectivization.firstIndex {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) :
    ฮน

    The first non-zero coordinate of a non-zero vector.

    Equations
    Instances For
      theorem Projectivization.apply_firstIndex_ne_zero {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) :
      (โ†‘v).ofLp (firstIndex v) โ‰  0
      theorem Projectivization.firstIndex_le {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) {i : ฮน} (hi : (โ†‘v).ofLp i โ‰  0) :
      theorem Projectivization.apply_eq_zero_of_lt_firstIndex {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) {j : ฮน} (hj : j < firstIndex v) :
      (โ†‘v).ofLp j = 0
      theorem Projectivization.firstIndex_eq_iff {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) (i : ฮน) :
      firstIndex v = i โ†” (โ†‘v).ofLp i โ‰  0 โˆง โˆ€ j < i, (โ†‘v).ofLp j = 0
      theorem Projectivization.firstIndex_smul {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) {t : ๐•œ} (ht : t โ‰  0) :

      The unit section #

      noncomputable def Projectivization.unitScalar {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) :
      ๐•œ

      The normalising scalar of a non-zero vector: the conjugate phase of its first non-zero coordinate, over the norm.

      Equations
      Instances For
        theorem Projectivization.norm_unitScalar {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) :
        theorem Projectivization.unitScalar_ne_zero {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) :
        noncomputable def Projectivization.unitRep {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) :
        EuclideanSpace ๐•œ ฮน

        The unit representative of a non-zero vector: normalised, with its first non-zero coordinate real and positive.

        Equations
        Instances For
          theorem Projectivization.norm_unitRep {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) :
          theorem Projectivization.unitRep_ne_zero {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) :
          theorem Projectivization.unitRep_smul {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) {t : ๐•œ} (ht : t โ‰  0) :
          unitRep โŸจt โ€ข โ†‘v, โ‹ฏโŸฉ = unitRep v

          The unit representative is scale-invariant.

          theorem Projectivization.unitRep_scale_invariant {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (a b : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) (t : ๐•œ) (h : โ†‘a = t โ€ข โ†‘b) :
          noncomputable def Projectivization.unitSection {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] :
          Projectivization ๐•œ (EuclideanSpace ๐•œ ฮน) โ†’ EuclideanSpace ๐•œ ฮน

          The unit section of the ray map: a unit-norm representative of every ray, chosen so that the first non-zero coordinate is real and positive.

          Equations
          Instances For
            theorem Projectivization.unitSection_mk {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : EuclideanSpace ๐•œ ฮน) (hv : v โ‰  0) :
            (mk ๐•œ v hv).unitSection = unitRep โŸจv, hvโŸฉ
            theorem Projectivization.norm_unitSection {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (p : Projectivization ๐•œ (EuclideanSpace ๐•œ ฮน)) :
            theorem Projectivization.unitSection_ne_zero {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (p : Projectivization ๐•œ (EuclideanSpace ๐•œ ฮน)) :
            theorem Projectivization.mk_unitSection {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (p : Projectivization ๐•œ (EuclideanSpace ๐•œ ฮน)) :
            mk ๐•œ p.unitSection โ‹ฏ = p

            The unit section is a section: mk (unitSection p) = p.

            Measurability #

            theorem Projectivization.measurable_coord {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} (i : ฮน) :
            Measurable fun (v : EuclideanSpace ๐•œ ฮน) => v.ofLp i
            theorem Projectivization.measurableSet_firstIndex_eq {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (i : ฮน) :
            MeasurableSet {v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 } | firstIndex v = i}

            The set of vectors whose first non-zero coordinate is i is measurable.

            noncomputable def Projectivization.candidateRep {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] (i : ฮน) (v : EuclideanSpace ๐•œ ฮน) :
            EuclideanSpace ๐•œ ฮน

            The candidate representative for a given first index, as a function on all vectors.

            Equations
            Instances For
              theorem Projectivization.measurable_candidateRep {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] (i : ฮน) :
              theorem Projectivization.unitRep_eq_sum {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] (v : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) :
              unitRep v = โˆ‘ i : ฮน, {w : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 } | firstIndex w = i}.indicator (fun (w : { v : EuclideanSpace ๐•œ ฮน // v โ‰  0 }) => candidateRep i โ†‘w) v
              theorem Projectivization.measurable_unitRep {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] :
              theorem Projectivization.measurable_unitSection {๐•œ : Type u_1} [RCLike ๐•œ] {ฮน : Type u_2} [Fintype ฮน] [LinearOrder ฮน] :

              โ˜… The unit section is measurable.