Module

Repartitions.lean

Nyll.AlgebraicCurves.Cohomology.Adelic.Repartitions
19 declarations indexed from sourceView source ↗

Repartitions and Riemann--Roch spaces defined by valuation bounds. Principal repartitions give the quotient used for the first cohomology space.

Imports1
Imported by192

Declarations

AlgebraicCurve.Place.adicValuation_le_one_of_mem
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
namespace Place
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
theorem adicValuation_le_one_of_mem {x : F} (hx : x ∈ v.toValuationSubring) :
    v.adicValuation x ≤ 1
AlgebraicCurve.Place.adicValuation_algebraMap_le_one
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
namespace Place
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
theorem adicValuation_algebraMap_le_one (a : K) :
    v.adicValuation (algebraMap K F a) ≤ 1
AlgebraicCurve.Place.adicValuation_eq_exp_neg_ord
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
namespace Place
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
theorem adicValuation_eq_exp_neg_ord {f : F} (hf : f ≠ 0) :
    v.adicValuation f = exp (-v.ord f)
AlgebraicCurve.Place.adicValuation_le_exp_iff
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
namespace Place
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
theorem adicValuation_le_exp_iff {f : F} {n : ℤ} :
    v.adicValuation f ≤ exp n ↔ f = 0 ∨ -n ≤ v.ord f
AlgebraicCurve.Place.adicValuation_le_one_iff
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
namespace Place
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
theorem adicValuation_le_one_iff {f : F} :
    v.adicValuation f ≤ 1 ↔ f = 0 ∨ 0 ≤ v.ord f
AlgebraicCurve.Place.not_adicValuation_le_one_iff
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
namespace Place
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
theorem not_adicValuation_le_one_iff {f : F} :
    ¬v.adicValuation f ≤ 1 ↔ v.ord f < 0
AlgebraicCurve.repartitions

The algebra generated by families integral at all but finitely many places.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
def repartitions : Subalgebra F (Place K F → F)
AlgebraicCurve.mem_repartitions_of_finite
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
theorem mem_repartitions_of_finite {α : Place K F → F}
    (hα : {v : Place K F | ¬v.adicValuation (α v) ≤ 1}.Finite) :
    α ∈ repartitions K F
AlgebraicCurve.mem_repartitions_of_finite_ord
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
theorem mem_repartitions_of_finite_ord {α : Place K F → F}
    (hα : {v : Place K F | v.ord (α v) < 0}.Finite) :
    α ∈ repartitions K F
AlgebraicCurve.mem_repartitions_of_forall_le_exp
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
theorem mem_repartitions_of_forall_le_exp (D : Divisor K F) (α : Place K F → F)
    (h : ∀ v : Place K F, v.adicValuation (α v) ≤ exp (D v)) :
    α ∈ repartitions K F
AlgebraicCurve.repartitionsOf

The repartitions satisfying the valuation bounds specified by a divisor.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
def repartitionsOf (D : Divisor K F) : Submodule K ↥(repartitions K F) where
  carrier :=
    {α | ∀ v : Place K F, v.adicValuation ((α : Place K F → F) v) ≤ exp (D v)}
  zero_mem' := by
    intro v
    change v.adicValuation (0 : F) ≤ exp (D v)
    simp
  add_mem' := by
    intro α β hα hβ v
    exact (Valuation.map_add _ _ _).trans (max_le (hα v) (hβ v))
  smul_mem' := by
    intro c α hα v
    change v.adicValuation (c • (α : Place K F → F) v) ≤ exp (D v)
    rw [Algebra.smul_def, map_mul]
    exact (mul_le_of_le_one_left' (v.adicValuation_algebraMap_le_one c)).trans (hα v)
AlgebraicCurve.mem_repartitionsOf_iff
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
theorem mem_repartitionsOf_iff {D : Divisor K F} {α : ↥(repartitions K F)} :
    α ∈ repartitionsOf D ↔
      ∀ v : Place K F,
        (α : Place K F → F) v = 0 ∨ -D v ≤ v.ord ((α : Place K F → F) v)
AlgebraicCurve.repartitionsOf_mono
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
theorem repartitionsOf_mono {D D' : Divisor K F} (h : D ≤ D') :
    repartitionsOf D ≤ repartitionsOf D'
AlgebraicCurve.riemannRochSpace

The functions satisfying the valuation bounds specified by a divisor.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
def riemannRochSpace (D : Divisor K F) : Submodule K F where
  carrier := {f | ∀ v : Place K F, v.adicValuation f ≤ exp (D v)}
  zero_mem' := by
    intro v
    simp
  add_mem' := by
    intro f g hf hg v
    exact (Valuation.map_add _ _ _).trans (max_le (hf v) (hg v))
  smul_mem' := by
    intro c f hf v
    change v.adicValuation (c • f) ≤ exp (D v)
    rw [Algebra.smul_def, map_mul]
    exact (mul_le_of_le_one_left' (v.adicValuation_algebraMap_le_one c)).trans (hf v)
AlgebraicCurve.mem_riemannRochSpace_iff
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
theorem mem_riemannRochSpace_iff {D : Divisor K F} {f : F} :
    f ∈ riemannRochSpace D ↔ ∀ v : Place K F, f = 0 ∨ -D v ≤ v.ord f
AlgebraicCurve.principalRepartitions

The submodule of constant repartitions arising from global functions.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
variable (K F) in
def principalRepartitions : Submodule K ↥(repartitions K F)
AlgebraicCurve.mem_principalRepartitions_iff
Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
variable (K F) in
theorem mem_principalRepartitions_iff {α : ↥(repartitions K F)} :
    α ∈ principalRepartitions K F ↔
      ∃ f : F, (α : Place K F → F) = fun _ => f := by
  simp only [principalRepartitions, Submodule.restrictScalars_mem, LinearMap.mem_range,
    Algebra.linearMap_apply]
  constructor
  · rintro ⟨f, rfl⟩
    exact ⟨f, rfl⟩
  · rintro ⟨f, hf⟩
    exact ⟨f, Subtype.ext hf.symm⟩
AlgebraicCurve.H1

Repartitions modulo bounded and principal repartitions for a divisor.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
variable (K F) in
abbrev H1 (D : Divisor K F) : Type _
AlgebraicCurve.genusFF

The dimension of the first repartition cohomology space for the zero divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open WithZero
namespace AlgebraicCurve
variable (K F : Type*) [Field K] [Field F] [Algebra K F]
variable {K F}
variable (K F) in
variable (K F) in
def genusFF : ℕ