Documentation

LeanPool.RiemannRochFunctionFields.Genus.Polar

Pole divisors and Stichtenoth 1.4.11 #

This file develops the pole divisor (x)_∞ and the key degree identity: deg (polarDivisor x) = finrank k(X) K for transcendental x.

theorem FunctionField.Chart.linearIndependent_fin_pow_of_transcendental (k : Type u_1) (L : Type u_2) [Field k] [Field L] [Algebra k L] {x : L} (hx : Transcendental k x) (r : ) :
LinearIndependent k fun (j : Fin (r + 1)) => x ^ j

Powers x^j with j ≤ r are k-linearly independent when x is transcendental.

@[instance_reducible]
noncomputable def FunctionField.Chart.instDecidableEqPlaceAPolar (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] :

Decidable equality on coordinate places for polar divisor proofs.

Equations
Instances For
    @[instance_reducible]

    The classical decidable equality on k(X) used by the coordinate places.

    Equations
    Instances For
      noncomputable def FunctionField.Chart.polarDivisor (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] (x : K) :

      The pole divisor (x)_∞ of a nonzero function.

      Equations
      Instances For
        theorem FunctionField.Chart.exists_placeValuation_gt_one_of_not_algebraic (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower k (Polynomial k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] {x : K} (_hx : x 0) (hnt : ¬IsAlgebraic k x) :
        ∃ (v : PlaceA k K), 1 < (placeValuation k K v) x
        theorem FunctionField.Chart.polarDivisor_pos (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower k (Polynomial k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] {x : K} (hx : x 0) (hnt : ¬IsAlgebraic k x) :
        0 < deg k K (polarDivisor k K x)

        ¬IsAlgebraic is equivalent to Transcendental over a field.

        theorem FunctionField.Chart.le_of_forall_nat_mul_le {n d c : } (_hd : 0 < d) (h : ∀ (r : ), n * (r + 1) d * r + c) :
        n d

        If n(r + 1) ≤ dr + c for all natural r and 0 < d, then n ≤ d. Used in the finrank ≤ deg B half of Stichtenoth 1.4.11.

        theorem FunctionField.Chart.memRRspace_smul_polar (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] {x : K} (hxne : x 0) (n : ) :
        memRRspace k K (n polarDivisor k K x) (x ^ n)
        theorem FunctionField.Chart.nsmul_le_nsmul_polar (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] {D : DivisorA k K} (hD : 0 D) {j r : } (hjr : j r) :
        j D r D
        noncomputable def FunctionField.Chart.basisPoleBound (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] {ι : Type u_3} [Fintype ι] (f : ιK) :

        A uniform pole bound for a finite family of functions.

        Equations
        Instances For
          theorem FunctionField.Chart.polarDivisor_le_basisPoleBound (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] {ι : Type u_3} [Fintype ι] (f : ιK) (i : ι) :
          theorem FunctionField.Chart.basisPoleBound_nonneg (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] {ι : Type u_3} [Fintype ι] (f : ιK) :
          theorem FunctionField.Chart.memRRspace_basisPoleBound (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] {ι : Type u_3} [Fintype ι] (f : ιK) (i : ι) :
          memRRspace k K (basisPoleBound k K f) (f i)
          theorem FunctionField.Chart.memRRspace_basis_smul_x_pow (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] {ι : Type u_3} [Fintype ι] (f : ιK) (x : K) (hxne : x 0) (r : ) (i : ι) (j : ) (hj : j r) :
          memRRspace k K (basisPoleBound k K f + r polarDivisor k K x) (f i * x ^ j)

          Scalar tower k → k⟮X⟯ → K for chart-variable arguments.

          noncomputable def FunctionField.Chart.XK (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra (RatFunc k) K] :
          K

          The chart variable X_K in K.

          Equations
          Instances For
            theorem FunctionField.Chart.XK_ne_zero (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower k (Polynomial k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] :
            XK k K 0
            theorem FunctionField.Chart.linearIndependent_fin_pow_XK (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower k (Polynomial k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] (r : ) :
            LinearIndependent k fun (j : Fin (r + 1)) => XK k K ^ j

            Powers X_K^j with j ≤ r are k-linearly independent.

            theorem FunctionField.Chart.linearIndependent_basis_smul_XK_pow (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower k (Polynomial k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] {n r : } (b : Module.Basis (Fin n) (RatFunc k) K) :
            LinearIndependent k fun (p : Fin n × Fin (r + 1)) => b p.1 * XK k K ^ p.2

            The family {b i · X_K^j} is k-linearly independent over a k⟮X⟯-basis b.

            theorem FunctionField.Chart.ell_family_ge (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower k (Polynomial k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] {n r : } (b : Module.Basis (Fin n) (RatFunc k) K) :
            n * (r + 1) ell k K (basisPoleBound k K b + r polarDivisor k K (XK k K))

            Growth along the pole family: n(r+1) ≤ ℓ(C + r•B).

            Stichtenoth 1.4.11 counting half for the chart variable: [K : k⟮X⟯] ≤ deg (X_K)_∞.

            noncomputable def FunctionField.Chart.rationalSubfield (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] (x : K) :

            The rational function field k(x) ⊆ K generated by a transcendental element.

            Equations
            Instances For
              theorem FunctionField.Chart.linearIndependent_basis_smul_x_pow (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] {n r : } {x : K} (hx : Transcendental k x) (b : Module.Basis (Fin n) (↥(rationalSubfield k K x)) K) :
              LinearIndependent k fun (p : Fin n × Fin (r + 1)) => b p.1 * x ^ p.2

              The family {b i * x^j} is k-linearly independent over a k(x)-basis b.

              The structure map k[X] → K is evaluation of polynomials at the chart variable X_K.

              The structure map k⟮X⟯ → K sends a rational function to the quotient of the evaluations of its numerator and denominator at X_K.

              Coercion of aeval at the adjoined generator of k(X_K).

              The canonical k-embedding k⟮X⟯ ≃ₐ k(X_K) ⊆ K agrees with the structure map.

              Target 2: finrank bridge #

              Target 1: finite dimensionality over k(x) #

              theorem FunctionField.Chart.isAlgebraic_adjoin_XK (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower k (Polynomial k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [Algebra.IsSeparable (RatFunc k) K] (z : K) :
              IsAlgebraic (↥k[XK k K]) z

              Every element of K is algebraic over the polynomial subalgebra k[X_K].

              theorem FunctionField.Chart.isAlgebraic_adjoin_x_XK (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower k (Polynomial k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [Algebra.IsSeparable (RatFunc k) K] {x : K} (hx : Transcendental k x) :
              IsAlgebraic (↥k[x]) (XK k K)

              Exchange: if x is transcendental over k, then X_K is algebraic over k[x].

              X_K is algebraic over the rational subfield k(x).

              A function field is finite over the rational subfield generated by a transcendental element.

              Stichtenoth 1.4.11 (≤) for general transcendental x.

              theorem FunctionField.Chart.deg_polar_le_finrank (k : Type u_1) (K : Type u_2) [Field k] [Field K] [Algebra k K] [Algebra (Polynomial k) K] [Algebra (RatFunc k) K] [IsScalarTower k (Polynomial k) K] [IsScalarTower (Polynomial k) (RatFunc k) K] [FunctionField k K] [Algebra.IsSeparable (RatFunc k) K] [IsFullConstantField k K] {x : K} (hx : ¬IsAlgebraic k x) (hxgen : x = (algebraMap (RatFunc k) K) RatFunc.X) :
              (Module.finrank (RatFunc k) K) deg k K (polarDivisor k K x)

              Coordinate-base specialization via the adjoin bridge.