Divisors and functions realizing two torsion classes with disjoint rational support.
Source context 4 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
namespace AlgebraicCurve
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
variable (K F) instructure WeilDatum (n : ℕ) where
/-- The first divisor. -/
D₁ : Divisor K F
/-- The second divisor. -/
D₂ : Divisor K F
/-- A function whose divisor is the prescribed multiple of the first divisor. -/
f₁ : F
/-- A function whose divisor is the prescribed multiple of the second divisor. -/
f₂ : F
/-- The first function is nonzero. -/
f₁_ne_zero : f₁ ≠ 0
/-- The second function is nonzero. -/
f₂_ne_zero : f₂ ≠ 0
/-- At each place, the first function has order equal to the first divisor multiplied by n. -/
ord_f₁ : ∀ v : Place K F, v.ord f₁ = n * D₁ v
/-- At each place, the second function has order equal to the second divisor multiplied by n. -/
ord_f₂ : ∀ v : Place K F, v.ord f₂ = n * D₂ v
/-- The two divisors have disjoint supports. -/
disjoint : ∀ v : Place K F, D₁ v = 0 ∨ D₂ v = 0
/-- Every place in either support is rational over the constant field. -/
rational : ∀ v : Place K F, D₁ v ≠ 0 ∨ D₂ v ≠ 0 → v.IsRational