Documentation

TauCeti.LinearAlgebra.Complex.LinearPart

Complex-linear and complex-antilinear parts of a real-linear map #

Fix real vector spaces (or modules) V and W equipped with almost complex structures, that is, real-linear endomorphisms J : V →ₗ[ℝ] V and J' : W →ₗ[ℝ] W with J ∘ J = -1 and J' ∘ J' = -1. A real-linear map F : V →ₗ[ℝ] W is complex linear (with respect to the pair (J, J')) when it commutes with the structures, F ∘ J = J' ∘ F, and complex antilinear when it anticommutes, F ∘ J = -(J' ∘ F).

Every real-linear map splits canonically as the sum of a complex-linear and a complex-antilinear map,

F = complexLinearPart J J' F + complexAntilinearPart J J' F,

with complexLinearPart J J' F = ½ (F - J' ∘ F ∘ J) and complexAntilinearPart J J' F = ½ (F + J' ∘ F ∘ J). This is the pointwise linearization at the heart of the holomorphic theory: a smooth map between almost complex manifolds is J-holomorphic exactly when its differential is complex linear, equivalently when its complex-antilinear part ∂̄ vanishes. This file develops the linear-algebra layer of that statement, before any smoothness or bundle structure is introduced.

Main definitions #

Main results #

The sign conventions follow McDuff--Salamon, J-holomorphic Curves and Symplectic Topology, 2nd ed., Section 2.2, specialized to the pointwise real-linear setting.

def TauCeti.IsComplexLinear {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F : V →ₗ[ℝ] W) :

A real-linear map F : V →ₗ[ℝ] W is complex linear for the pair of almost complex structures (J, J') when it intertwines them: F ∘ J = J' ∘ F.

Equations
Instances For
    def TauCeti.IsComplexAntilinear {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F : V →ₗ[ℝ] W) :

    A real-linear map F : V →ₗ[ℝ] W is complex antilinear for the pair of almost complex structures (J, J') when it anti-intertwines them: F ∘ J = -(J' ∘ F).

    Equations
    Instances For
      @[simp]
      theorem TauCeti.isComplexLinear_iff {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} :

      Complex linearity restated as its defining commutation equation F ∘ J = J' ∘ F.

      @[simp]
      theorem TauCeti.isComplexAntilinear_iff {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} :

      Complex antilinearity restated as its defining anticommutation equation F ∘ J = -(J' ∘ F).

      theorem TauCeti.IsComplexLinear.apply {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexLinear J J' F) (v : V) :
      F (J v) = J' (F v)

      The pointwise form of complex linearity: F (J v) = J' (F v).

      theorem TauCeti.isComplexLinear_of_apply {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : ∀ (v : V), F (J v) = J' (F v)) :

      A real-linear map intertwining J and J' pointwise is complex linear.

      @[simp]
      theorem TauCeti.isComplexLinear_arrowCongr_iff {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {V₂ : Type u_4} {W₂ : Type u_5} [AddCommGroup V₂] [Module ℝ V₂] [AddCommGroup W₂] [Module ℝ W₂] {F : V →ₗ[ℝ] W} (eV : V ≃ₗ[ℝ] V₂) (eW : W ≃ₗ[ℝ] W₂) :
      IsComplexLinear (eV.conj J) (eW.conj J') ((eV.arrowCongr eW) F) ↔ IsComplexLinear J J' F

      Raw complex-linearity is preserved and reflected by conjugating source and target along linear equivalences.

      theorem TauCeti.IsComplexAntilinear.apply {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexAntilinear J J' F) (v : V) :
      F (J v) = -J' (F v)

      The pointwise form of complex antilinearity: F (J v) = -(J' (F v)).

      theorem TauCeti.isComplexAntilinear_of_apply {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : ∀ (v : V), F (J v) = -J' (F v)) :

      A real-linear map anti-intertwining J and J' pointwise is complex antilinear.

      The identity map is complex linear.

      theorem TauCeti.isComplexLinear_zero {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} :

      The zero map is complex linear.

      theorem TauCeti.isComplexAntilinear_zero {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} :

      The zero map is complex antilinear.

      theorem TauCeti.IsComplexLinear.neg {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexLinear J J' F) :

      The negation of a complex-linear map is complex linear.

      theorem TauCeti.IsComplexLinear.neg_neg {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexLinear J J' F) :

      Complex-linearity is unchanged after negating both source and target endomorphisms.

      theorem TauCeti.IsComplexLinear.of_neg_neg {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexLinear (-J) (-J') F) :

      If a map is complex-linear after negating both endomorphisms, then it was complex-linear before the sign change.

      theorem TauCeti.IsComplexAntilinear.neg {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexAntilinear J J' F) :

      The negation of a complex-antilinear map is complex antilinear.

      theorem TauCeti.IsComplexAntilinear.neg_neg {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexAntilinear J J' F) :

      Complex-antilinearity is unchanged after negating both source and target endomorphisms.

      theorem TauCeti.IsComplexAntilinear.of_neg_neg {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexAntilinear (-J) (-J') F) :

      If a map is complex-antilinear after negating both endomorphisms, then it was complex-antilinear before the sign change.

      theorem TauCeti.IsComplexLinear.comp {V : Type u_1} {W : Type u_2} {U : Type u_3} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] [AddCommGroup U] [Module ℝ U] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {J'' : U →ₗ[ℝ] U} {F : V →ₗ[ℝ] W} {G : W →ₗ[ℝ] U} (hG : IsComplexLinear J' J'' G) (hF : IsComplexLinear J J' F) :

      The composite of two complex-linear maps is complex linear.

      theorem TauCeti.IsComplexAntilinear.comp {V : Type u_1} {W : Type u_2} {U : Type u_3} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] [AddCommGroup U] [Module ℝ U] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {J'' : U →ₗ[ℝ] U} {F : V →ₗ[ℝ] W} {G : W →ₗ[ℝ] U} (hG : IsComplexAntilinear J' J'' G) (hF : IsComplexAntilinear J J' F) :

      The composite of two complex-antilinear maps is complex linear.

      theorem TauCeti.IsComplexLinear.comp_antilinear {V : Type u_1} {W : Type u_2} {U : Type u_3} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] [AddCommGroup U] [Module ℝ U] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {J'' : U →ₗ[ℝ] U} {F : V →ₗ[ℝ] W} {G : W →ₗ[ℝ] U} (hG : IsComplexLinear J' J'' G) (hF : IsComplexAntilinear J J' F) :

      A complex-linear map after a complex-antilinear map is complex antilinear.

      theorem TauCeti.IsComplexAntilinear.comp_linear {V : Type u_1} {W : Type u_2} {U : Type u_3} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] [AddCommGroup U] [Module ℝ U] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {J'' : U →ₗ[ℝ] U} {F : V →ₗ[ℝ] W} {G : W →ₗ[ℝ] U} (hG : IsComplexAntilinear J' J'' G) (hF : IsComplexLinear J J' F) :

      A complex-antilinear map after a complex-linear map is complex antilinear.

      noncomputable def TauCeti.complexLinearPartLinearMap {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) :

      The complex-linear-part operator F ↦ ∂F as a real-linear map on V →ₗ[ℝ] W.

      Equations
      Instances For
        noncomputable def TauCeti.complexAntilinearPartLinearMap {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) :

        The complex-antilinear-part operator F ↦ ∂̄F as a real-linear map on V →ₗ[ℝ] W.

        Equations
        Instances For
          @[simp]
          theorem TauCeti.complexLinearPartLinearMap_apply {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F : V →ₗ[ℝ] W) :

          The defining formula for complexLinearPartLinearMap J J' on an input map.

          @[simp]

          The defining formula for complexAntilinearPartLinearMap J J' on an input map.

          noncomputable def TauCeti.complexLinearPart {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F : V →ₗ[ℝ] W) :

          The complex-linear part ∂F = ½ (F - J' ∘ F ∘ J) of a real-linear map.

          Equations
          Instances For
            noncomputable def TauCeti.complexAntilinearPart {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F : V →ₗ[ℝ] W) :

            The complex-antilinear part ∂̄F = ½ (F + J' ∘ F ∘ J) of a real-linear map.

            Equations
            Instances For
              theorem TauCeti.complexLinearPart_def {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F : V →ₗ[ℝ] W) :

              The defining formula for the complex-linear part as a linear-map equality.

              theorem TauCeti.complexAntilinearPart_def {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F : V →ₗ[ℝ] W) :

              The defining formula for the complex-antilinear part as a linear-map equality.

              @[simp]
              theorem TauCeti.complexLinearPart_apply {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F : V →ₗ[ℝ] W) (v : V) :
              (complexLinearPart J J' F) v = 2⁻¹ • (F v - J' (F (J v)))

              The pointwise formula for the complex-linear part: ∂F v = 1/2 • (F v - J' (F (J v))).

              @[simp]
              theorem TauCeti.complexAntilinearPart_apply {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F : V →ₗ[ℝ] W) (v : V) :
              (complexAntilinearPart J J' F) v = 2⁻¹ • (F v + J' (F (J v)))

              The pointwise formula for the complex-antilinear part: ∂̄F v = 1/2 • (F v + J' (F (J v))).

              @[simp]

              The canonical decomposition ∂F + ∂̄F = F.

              @[simp]

              The complex-linear-part and complex-antilinear-part operators add to the identity.

              @[simp]
              theorem TauCeti.complexLinearPart_add {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F G : V →ₗ[ℝ] W) :

              The complex-linear part is additive in F.

              @[simp]

              The complex-antilinear part is additive in F.

              @[simp]
              theorem TauCeti.complexLinearPart_smul {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (c : ℝ) (F : V →ₗ[ℝ] W) :

              The complex-linear part commutes with real scalar multiplication in F.

              @[simp]
              theorem TauCeti.complexAntilinearPart_smul {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (c : ℝ) (F : V →ₗ[ℝ] W) :

              The complex-antilinear part commutes with real scalar multiplication in F.

              @[simp]
              theorem TauCeti.complexLinearPart_zero {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) :

              The complex-linear part of the zero map is zero.

              @[simp]
              theorem TauCeti.complexAntilinearPart_zero {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) :

              The complex-antilinear part of the zero map is zero.

              @[simp]
              theorem TauCeti.complexLinearPart_neg {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) (F : V →ₗ[ℝ] W) :

              The complex-linear part commutes with negation in F.

              @[simp]

              The complex-antilinear part commutes with negation in F.

              theorem TauCeti.complexLinearPart_isComplexLinear {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} (hJ : J ∘ₗ J = -LinearMap.id) (hJ' : J' ∘ₗ J' = -LinearMap.id) (F : V →ₗ[ℝ] W) :

              The complex-linear part really is complex linear.

              The complex-antilinear part really is complex antilinear.

              A real-linear map is complex linear exactly when its complex-antilinear part vanishes: the linear-algebra shadow of "F is J-holomorphic iff ∂̄F = 0".

              A real-linear map is complex antilinear exactly when its complex-linear part vanishes.

              theorem TauCeti.IsComplexLinear.complexLinearPart_eq {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexLinear J J' F) (hJ' : J' ∘ₗ J' = -LinearMap.id) :

              A complex-linear map equals its own complex-linear part.

              theorem TauCeti.IsComplexLinear.complexAntilinearPart_eq_zero {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexLinear J J' F) (hJ' : J' ∘ₗ J' = -LinearMap.id) :

              The complex-antilinear part of a complex-linear map vanishes.

              A complex-antilinear map equals its own complex-antilinear part.

              theorem TauCeti.IsComplexAntilinear.complexLinearPart_eq_zero {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} (h : IsComplexAntilinear J J' F) (hJ' : J' ∘ₗ J' = -LinearMap.id) :

              The complex-linear part of a complex-antilinear map vanishes.

              theorem TauCeti.complexLinearPart_eq_and_complexAntilinearPart_eq_of_decomp {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} (hJ' : J' ∘ₗ J' = -LinearMap.id) {F A B : V →ₗ[ℝ] W} (hA : IsComplexLinear J J' A) (hB : IsComplexAntilinear J J' B) (hF : F = A + B) :

              Uniqueness of the complex-linear/antilinear decomposition: if F = A + B with A complex linear and B complex antilinear, then A and B are the canonical parts of F.

              def TauCeti.complexLinearMaps {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : V →ₗ[ℝ] V) (J' : W →ₗ[ℝ] W) :

              The real subspace of complex-linear maps V →ₗ[ℝ] W for the pair (J, J').

              Equations
              Instances For

                The real subspace of complex-antilinear maps V →ₗ[ℝ] W for the pair (J, J').

                Equations
                Instances For
                  @[simp]
                  theorem TauCeti.mem_complexLinearMaps {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : V →ₗ[ℝ] V} {J' : W →ₗ[ℝ] W} {F : V →ₗ[ℝ] W} :
                  @[simp]

                  For genuine almost complex structures, every real-linear map splits uniquely as a complex-linear plus a complex-antilinear map: the two subspaces are complementary.