Documentation

TauCeti.Geometry.Symplectic.AlmostComplex

Almost complex structures and compatible symplectic forms #

This file starts the pointwise linear-algebra API for the analytic Heegaard Floer roadmap. It records almost complex structures on real modules, symplectic bilinear forms, and the standard tameness and compatibility predicates between them.

These are the fiberwise definitions used before introducing smooth bundles, almost complex manifolds, and J-holomorphic maps. The smooth manifold layer should reuse these predicates on tangent fibers rather than restating the linear algebra.

Main declarations #

The definitions follow the standard conventions in McDuff--Salamon, J-holomorphic Curves and Symplectic Topology, Section 2.2, specialized here to the pointwise real-linear setting.

A pointwise almost complex structure is a real-linear endomorphism whose square is -1.

This is the fiberwise object underlying an almost complex structure on a real vector bundle or manifold. Smoothness is deliberately not bundled here; the analytic roadmap needs the linear algebra separately on each tangent space.

Instances For

    The underlying linear map determines an almost complex structure: the only data is the endomorphism, the defining identity being a proposition.

    @[simp]

    Applying J twice gives -v.

    The underlying linear map of an almost complex structure is injective.

    The underlying linear map of an almost complex structure is surjective.

    The linear equivalence attached to an almost complex structure.

    Its inverse is -J; this is often the convenient way to move bilinear-form statements across J.

    Equations
    Instances For
      theorem TauCeti.AlmostComplexStructure.ext {V : Type u_1} [AddCommGroup V] [Module ℝ V] {J K : AlmostComplexStructure V} (h : ∀ (v : V), J.toLinearMap v = K.toLinearMap v) :
      J = K

      Two almost complex structures agreeing pointwise are equal.

      The negation of an almost complex structure is again an almost complex structure.

      Equations
      Instances For

        The standard almost complex structure on V × V, sending (x, y) to (-y, x).

        Equations
        Instances For
          @[simp]

          A real-linear map is complex-linear with respect to two fixed pointwise almost complex structures if it intertwines them.

          Equations
          Instances For

            The bundled almost-complex predicate is the raw complex-linearity predicate applied to the underlying endomorphisms.

            theorem TauCeti.isComplexLinearMap_iff_apply {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] (J : AlmostComplexStructure V) (J' : AlmostComplexStructure W) (F : V →ₗ[ℝ] W) :
            IsComplexLinearMap J J' F ↔ ∀ (v : V), F (J.toLinearMap v) = J'.toLinearMap (F v)

            Rewrite complex-linearity of a real-linear map as the pointwise equation F (J v) = J' (F v).

            Complex-linearity for almost complex structures is membership in the existing submodule of raw-linear complex-linear maps.

            @[simp]

            The zero map is complex-linear for any source and target almost complex structures.

            theorem TauCeti.IsComplexLinearMap.add {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : AlmostComplexStructure V} {J' : AlmostComplexStructure W} {F G : V →ₗ[ℝ] W} (hF : IsComplexLinearMap J J' F) (hG : IsComplexLinearMap J J' G) :

            Complex-linear maps are closed under addition.

            Complex-linear maps are closed under negation.

            @[simp]

            Negating a map preserves and reflects complex-linearity.

            Complex-linearity is unchanged after negating both the source and target almost complex structures.

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

            @[simp]

            Negating both almost complex structures leaves the complex-linearity condition unchanged.

            theorem TauCeti.IsComplexLinearMap.sub {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module ℝ V] [AddCommGroup W] [Module ℝ W] {J : AlmostComplexStructure V} {J' : AlmostComplexStructure W} {F G : V →ₗ[ℝ] W} (hF : IsComplexLinearMap J J' F) (hG : IsComplexLinearMap J J' G) :

            Complex-linear maps are closed under subtraction.

            Complex-linear maps are closed under real scalar multiplication.

            @[simp]

            The identity map is complex-linear with respect to the same almost complex structure.

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

            Complex-linear maps are closed under composition.

            @[simp]

            An almost complex structure is complex-linear as a map from its module to itself.

            Precomposing a complex-linear map by the source almost complex structure again gives a complex-linear map.

            If precomposition by the source almost complex structure is complex-linear, then the original map was complex-linear.

            @[simp]

            Precomposition by the source almost complex structure preserves and reflects complex-linearity.

            theorem TauCeti.bilinForm_comp_almostComplexStructure {U : Type u_4} {V : Type u_5} [AddCommGroup U] [Module ℝ U] [AddCommGroup V] [Module ℝ V] {B : LinearMap.BilinForm ℝ V} (hB : B.IsAlt) (J₀ : AlmostComplexStructure U) (F : U →ₗ[ℝ] V) (v : U) :
            (B ((F ∘ₗ J₀.toLinearMap) v)) ((F ∘ₗ J₀.toLinearMap) (J₀.toLinearMap v)) = (B (F v)) (F (J₀.toLinearMap v))

            The ordered pairing B (F v) (F (J₀ v)) of an alternating bilinear form B is unchanged when both arguments are precomposed by a source almost complex structure J₀: rotating the source by J₀ sends the pair (v, J₀ v) to (J₀ v, -v), and alternation leaves the pairing unchanged.

            Only alternation of B is used, so the statement lives at the LinearMap.BilinForm level; the SymplecticForm corollary is SymplecticForm.symplecticForm_comp_almostComplexStructure.

            structure TauCeti.SymplecticForm (V : Type u_4) [AddCommGroup V] [Module ℝ V] :
            Type u_4

            A symplectic form on a real module is an alternating, nondegenerate bilinear form.

            This is the pointwise linear-algebra notion. Closedness of a differential form belongs to the manifold layer and is not bundled here.

            Instances For

              The underlying bilinear form determines a symplectic form: the only data is the form, the alternating and nondegeneracy conditions being propositions.

              @[instance_reducible]
              Equations
              @[simp]
              theorem TauCeti.SymplecticForm.self_eq_zero {V : Type u_1} [AddCommGroup V] [Module ℝ V] (ω : SymplecticForm V) (v : V) :
              (fun (v w : V) => (ω.toBilinForm v) w) v v = 0

              A symplectic form vanishes on the diagonal.

              theorem TauCeti.SymplecticForm.neg_eq {V : Type u_1} [AddCommGroup V] [Module ℝ V] (ω : SymplecticForm V) (v w : V) :
              -(fun (v w : V) => (ω.toBilinForm v) w) v w = (fun (v w : V) => (ω.toBilinForm v) w) w v

              A symplectic form is skew-symmetric in the usual additive form.

              theorem TauCeti.SymplecticForm.apply_smul_add_smul {V : Type u_1} [AddCommGroup V] [Module ℝ V] (ω : SymplecticForm V) (x y : V) (a b c d : ℝ) :
              (fun (v w : V) => (ω.toBilinForm v) w) (a • x + b • y) (c • x + d • y) = (a * d - b * c) * (fun (v w : V) => (ω.toBilinForm v) w) x y

              Bilinear expansion of ω on the plane spanned by a pair of vectors: only the mixed term ω x y survives.

              theorem TauCeti.SymplecticForm.symplecticForm_comp_almostComplexStructure {V : Type u_1} [AddCommGroup V] [Module ℝ V] {U : Type u_4} [AddCommGroup U] [Module ℝ U] (ω : SymplecticForm V) (J₀ : AlmostComplexStructure U) (F : U →ₗ[ℝ] V) (v : U) :
              (fun (v w : V) => (ω.toBilinForm v) w) ((F ∘ₗ J₀.toLinearMap) v) ((F ∘ₗ J₀.toLinearMap) (J₀.toLinearMap v)) = (fun (v w : V) => (ω.toBilinForm v) w) (F v) (F (J₀.toLinearMap v))

              The ordered area density ω (F v) (F (J₀ v)) is unchanged when both arguments are precomposed by a source almost complex structure J₀: rotating the source by J₀ sends the pair (v, J₀ v) to (J₀ v, -v), which has the same symplectic area. This is the SymplecticForm corollary of bilinForm_comp_almostComplexStructure.

              A symplectic form is reflexive as an orthogonality relation.

              Nondegeneracy can be tested on the left variable for a symplectic form.

              Nondegeneracy can be tested on the right variable for a symplectic form.

              theorem TauCeti.SymplecticForm.exists_apply_eq_one {V : Type u_1} [AddCommGroup V] [Module ℝ V] (ω : SymplecticForm V) {x : V} (hx : x ≠ 0) :
              ∃ (y : V), (fun (v w : V) => (ω.toBilinForm v) w) x y = 1

              Nondegeneracy supplies a hyperbolic partner: every nonzero vector x admits a vector y with ω x y = 1.

              The bilinear form ω(J ·, J ·).

              Equations
              Instances For
                @[simp]
                theorem TauCeti.SymplecticForm.pullback_apply {V : Type u_1} [AddCommGroup V] [Module ℝ V] (ω : SymplecticForm V) (J : AlmostComplexStructure V) (v w : V) :
                ((ω.pullback J) v) w = (fun (v w : V) => (ω.toBilinForm v) w) (J.toLinearMap v) (J.toLinearMap w)

                A symplectic form is J-invariant when ω(Jv, Jw) = ω(v, w).

                Equations
                Instances For
                  theorem TauCeti.SymplecticForm.invariant_iff {V : Type u_1} [AddCommGroup V] [Module ℝ V] (ω : SymplecticForm V) (J : AlmostComplexStructure V) :
                  ω.Invariant J ↔ ∀ (v w : V), (fun (v w : V) => (ω.toBilinForm v) w) (J.toLinearMap v) (J.toLinearMap w) = (fun (v w : V) => (ω.toBilinForm v) w) v w

                  The bilinear form g(v,w) = ω(v, Jw) associated to ω and J.

                  Equations
                  Instances For
                    @[simp]
                    theorem TauCeti.SymplecticForm.associatedBilinForm_apply {V : Type u_1} [AddCommGroup V] [Module ℝ V] (ω : SymplecticForm V) (J : AlmostComplexStructure V) (v w : V) :
                    ((ω.associatedBilinForm J) v) w = (fun (v w : V) => (ω.toBilinForm v) w) v (J.toLinearMap w)

                    ω tames J if ω(v, Jv) is positive on every nonzero vector.

                    Equations
                    Instances For

                      ω is compatible with J if it is J-invariant and ω(·, J ·) is positive definite.

                      Instances For

                        Compatibility is equivalently J-invariance plus tameness.

                        theorem TauCeti.SymplecticForm.Compatible.of_tames {V : Type u_1} [AddCommGroup V] [Module ℝ V] {ω : SymplecticForm V} {J : AlmostComplexStructure V} (hinvariant : ω.Invariant J) (htames : ω.Tames J) :

                        Build compatibility from J-invariance and the named tameness predicate.

                        theorem TauCeti.SymplecticForm.Compatible.invariant_apply {V : Type u_1} [AddCommGroup V] [Module ℝ V] {ω : SymplecticForm V} {J : AlmostComplexStructure V} (h : ω.Compatible J) (v w : V) :
                        (fun (v w : V) => (ω.toBilinForm v) w) (J.toLinearMap v) (J.toLinearMap w) = (fun (v w : V) => (ω.toBilinForm v) w) v w
                        theorem TauCeti.SymplecticForm.Invariant.associatedBilinForm_apply_swap {V : Type u_1} [AddCommGroup V] [Module ℝ V] {ω : SymplecticForm V} {J : AlmostComplexStructure V} (hinv : ω.Invariant J) (v w : V) :
                        (fun (v w : V) => (ω.toBilinForm v) w) v (J.toLinearMap w) = (fun (v w : V) => (ω.toBilinForm v) w) w (J.toLinearMap v)

                        For a J-invariant form, the associated bilinear form is symmetric pointwise. Only invariance is needed.

                        theorem TauCeti.SymplecticForm.Compatible.associatedBilinForm_apply_swap {V : Type u_1} [AddCommGroup V] [Module ℝ V] {ω : SymplecticForm V} {J : AlmostComplexStructure V} (h : ω.Compatible J) (v w : V) :
                        (fun (v w : V) => (ω.toBilinForm v) w) v (J.toLinearMap w) = (fun (v w : V) => (ω.toBilinForm v) w) w (J.toLinearMap v)

                        For a compatible pair, the associated bilinear form is symmetric pointwise.

                        For a J-invariant form, the associated bilinear form ω(·, J ·) is symmetric. Only invariance is needed.

                        For a compatible pair, the associated bilinear form ω(·, J ·) is symmetric.

                        Applying the almost complex structure to both entries preserves the diagonal of the associated bilinear form.

                        theorem TauCeti.SymplecticForm.Compatible.associated_pos {V : Type u_1} [AddCommGroup V] [Module ℝ V] {ω : SymplecticForm V} {J : AlmostComplexStructure V} (h : ω.Compatible J) {v : V} (hv : v ≠ 0) :
                        0 < (fun (v w : V) => (ω.toBilinForm v) w) v (J.toLinearMap v)
                        theorem TauCeti.IsComplexLinearMap.associatedBilinForm_apply_apply_self_eq {V : Type u_1} {U : Type u_4} [AddCommGroup U] [Module ℝ U] [AddCommGroup V] [Module ℝ V] {J₀ : AlmostComplexStructure U} {J : AlmostComplexStructure V} {F : U →ₗ[ℝ] V} {ω : SymplecticForm V} (hF : IsComplexLinearMap J₀ J F) (v : U) :
                        ((ω.associatedBilinForm J) (F (J₀.toLinearMap v))) (F (J₀.toLinearMap v)) = ((ω.associatedBilinForm J) (F v)) (F v)

                        For a complex-linear map from any complex source, the associated-bilinear-form diagonal of the image of J₀ v equals that of the image of v.

                        theorem TauCeti.IsComplexLinearMap.associatedBilinForm_apply_self_eq_symplecticForm {V : Type u_1} {U : Type u_4} [AddCommGroup U] [Module ℝ U] [AddCommGroup V] [Module ℝ V] {J₀ : AlmostComplexStructure U} {J : AlmostComplexStructure V} {F : U →ₗ[ℝ] V} {ω : SymplecticForm V} (hF : IsComplexLinearMap J₀ J F) (v : U) :
                        ((ω.associatedBilinForm J) (F v)) (F v) = (fun (v w : V) => (ω.toBilinForm v) w) (F v) (F (J₀.toLinearMap v))

                        For a complex-linear map from any complex source, the associated-bilinear-form diagonal of an image vector is the symplectic area density of the ordered pair (F v, F (J₀ v)).