Documentation

LeanPool.DavisKahan.ForTauCeti.Analysis.InnerProductSpace.Complexification.Basic

Complexification of real Hilbert spaces #

This file supplies the concrete complexification foundation needed to reuse the complex operator-angle and spectral calculus for real Hilbert spaces.

For a real Hilbert space E, its complexification is the L2 product E × E. The pair (x, y) represents x + i y, with complex scalar multiplication

(a + i b) • (x + i y) = (a x - b y) + i (b x + a y).

The complex inner product is

⟪(x,y),(u,v)⟫ = (⟪x,u⟫ + ⟪y,v⟫) + i (⟪x,v⟫ - ⟪y,u⟫).

The construction includes:

No unbounded-operator, spectral-cutoff, or Ky Fan file depends on this module.

The complexification of a real normed space, represented by its real and imaginary coordinates with the L2 product norm.

Equations
Instances For
    @[instance_reducible]

    Additive structure, inherited from the underlying WithLp 2 (E × E).

    Equations
    • One or more equations did not get rendered due to their size.
    @[instance_reducible]

    The L² product norm, inherited from WithLp 2 (E × E). This is the choice that makes the complexification an inner-product space rather than merely a normed one.

    Equations
    • One or more equations did not get rendered due to their size.
    @[instance_reducible]

    Real module structure, inherited from the product.

    Equations
    @[instance_reducible]

    The L² norm is compatible with real scaling.

    Equations

    Construct a complexified vector from its real and imaginary coordinates.

    Equations
    Instances For

      The real coordinate of a complexified vector.

      Equations
      Instances For

        The imaginary coordinate of a complexified vector.

        Equations
        Instances For
          @[simp]
          theorem TauCeti.RealComplexification.re_mk {E : Type u_1} (x y : E) :
          (mk x y).re = x

          The real part of a vector built from coordinates.

          @[simp]
          theorem TauCeti.RealComplexification.im_mk {E : Type u_1} (x y : E) :
          (mk x y).im = y

          The imaginary part of a vector built from coordinates.

          @[simp]

          Rebuilding a vector from its own coordinates is the identity.

          theorem TauCeti.RealComplexification.ext {E : Type u_1} {z w : RealComplexification E} (hre : z.re = w.re) (him : z.im = w.im) :
          z = w

          Two complexified vectors are equal when their real and imaginary coordinates agree. Tagged @[ext], so ext splits any goal about them into two real goals.

          @[simp]

          Zero has zero real part.

          @[simp]

          Zero has zero imaginary part.

          @[simp]

          Addition is coordinatewise on real parts.

          @[simp]

          Addition is coordinatewise on imaginary parts.

          @[simp]

          Negation on real parts.

          @[simp]

          Negation on imaginary parts.

          @[simp]

          Subtraction on real parts.

          @[simp]

          Subtraction on imaginary parts.

          @[simp]

          Real scaling acts on the real part.

          @[simp]

          Real scaling acts on the imaginary part.

          @[instance_reducible]

          Complex scalar multiplication on the real L2 product.

          Equations
          • One or more equations did not get rendered due to their size.
          @[simp]

          Real part of a complex scaling: re (c • z) = c.re • re z - c.im • im z, the real half of complex multiplication.

          @[simp]

          Imaginary part of a complex scaling: im (c • z) = c.im • re z + c.re • im z.

          @[instance_reducible]

          The complex module structure, where the complexification earns its name: i acts by (x, y) ↦ (-y, x). Built from minimal axioms because the four laws are exactly the four real identities that have to be checked coordinatewise.

          Equations

          Real and complex scalar actions are compatible, so ℝ-linear statements can be read inside ℂ-linear ones without transport.

          The squared L2 norm is the sum of the squared coordinate norms.

          Complex scalar multiplication scales the L2 norm exactly.

          @[instance_reducible]

          The L² norm is compatible with complex scaling. This is the non-formal instance of the group: it needs ‖c • z‖ = ‖c‖ ‖z‖ for complex c, which is the Pythagorean computation above and not a consequence of the real case.

          Equations
          @[instance_reducible]

          The canonical complex inner product on a real Hilbert-space complexification.

          Equations
          • One or more equations did not get rendered due to their size.
          @[simp]

          The complex inner product in coordinates: real part ⟪re z, re w⟫ + ⟪im z, im w⟫, imaginary part ⟪re z, im w⟫ - ⟪im z, re w⟫. True by rfl, and the form every computation unfolds to.

          The canonical embedding of a real Hilbert space into its complexification.

          Equations
          Instances For
            @[simp]

            The real part of a real vector is itself.

            @[simp]

            A real vector has zero imaginary part.

            The complex inner product of two real vectors is the real one, coerced -- so the embedding E → RealComplexification E is isometric.

            @[simp]

            Multiplication by i sends the real copy to the imaginary copy.

            Complex conjugation on the complexification.

            Equations
            Instances For
              @[simp]

              Conjugation fixes the real part.

              @[simp]

              Conjugation negates the imaginary part.

              @[simp]

              Conjugation fixes real vectors, which characterises the real subspace.

              @[simp]

              Conjugation is conjugate-linear, not linear: the scalar comes out starred.

              Coordinatewise extension of a bounded real-linear operator.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]

                The complexified operator acts on real parts by the original operator.

                @[simp]

                The complexified operator acts on imaginary parts by the original operator.

                @[simp]

                Complexification agrees with the original operator on real vectors.

                @[simp]

                The complexification of the zero operator is zero.

                @[simp]

                Complexification is additive.

                @[simp]

                Complexification commutes with negation.

                @[simp]

                Complexification commutes with subtraction.

                @[simp]

                Complexification is real-homogeneous. It is not complex-homogeneous -- the complexified operator is ℂ-linear, but complexify itself only transports real scalars.

                @[simp]

                Complexification is functorial: it commutes with composition.

                Complexification preserves operator norm exactly.

                Complexification is an isometry of operator spaces, not merely norm-preserving on each operator: it is additive, so norm_complexify upgrades to a statement about distances. This is the form needed to transport a topological property back from the complexification, where norm_complexify alone only transports one forward.

                Complexification reflects equality of bounded real operators.

                A real scalar acts through its complex coercion.

                A coordinate of a vector is no longer than the vector. The single statement of ‖re z‖ ≤ ‖z‖ in this repository, and the earliest in import order, so every consumer can reach it.

                It was private until 2026-07-30, guarded by a note saying a public copy would make unqualified uses ambiguous in Sources/DavisKahan1970/Ideals/HilbertSchmidtRealDescent.lean, which opens two of the namespaces that had a copy. That was true, and it was the wrong conclusion: the ambiguity came from the other three copies, not from this one being visible.

                Getting there took a broken tree first, and the sequence is worth keeping. edward (aiq-gpu) deleted the PartialMapComplexification sibling in 4dacc008 and pointed that module here; separately this one was still private. Each fix is right alone and they are fatal together — with the sibling gone and this one private, no public copy was reachable from PartialMap/Complexification.lean and the build stopped. Lane {lane:CPLX-DEDUP-1} then deleted the remaining copies and made this one public, which is the state described above.

                Restrict a complex operator to the real copy and take its real coordinate. No invariance assumption is needed to define this: the map is x ↦ re (T (ofReal x)) for any bounded T, and it is bounded by ‖T‖ because neither coordinate projection nor the real embedding changes a norm.

                Stated rectangularly, between two different spaces. Three copies of this definition existed until 2026-07-30 and they were not three copies of one thing: Sources/DavisKahan1970/Ideals/HilbertSchmidtRealDescent.lean had the rectangular one while Complexification/FunctionalCalculus.lean and OperatorIdeal/ApproximationNumbers/Real/Threshold.lean had the square case, which is this at F = E. This module is the only one all three consumers import, so it is where the general form belongs.

                Equations
                Instances For
                  @[simp]

                  Pointwise formula for the real restriction: embed, apply, take the real coordinate.

                  Every vector is its real part plus i times its imaginary part.

                  An operator commuting with conjugation maps the real copy into the real copy: the imaginary part of T (ofReal x) vanishes.

                  This is the whole content of the conjugation condition, and it is what makes realify below a two-sided inverse of complexify.

                  The real operator underlying a ℂ-linear operator: read off the action on the real copy.

                  Paired with complexify_realify this says complexify is a bijection onto the operators commuting with conjugation — the surjectivity half that complexify_injective leaves open.

                  Equations
                  Instances For
                    @[simp]

                    realify T acts by reading the real part of T on the real copy.

                    complexify is onto the conjugation-commuting operators. Together with complexify_injective, complexification identifies E →L[ℝ] F with exactly those ℂ-linear operators that commute with conjugation.

                    The complexification of a real operator commutes with conjugation.

                    Symmetry of a real operator is equivalent to symmetry of its complexification.

                    Self-adjointness is preserved and reflected by complexification.