Module

RationalFunctionField_deg_eq_one_of_isAlgClosed.lean

Nyll.AlgebraicCurves.Places.Rational.RationalFunctionField_deg_eq_one_of_isAlgClosed
72 declarations indexed from sourceView source ↗

Rational Function Field deg eq one of is Alg Closed

Imports29
Imported by4

Declarations

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
instance {K : Type*} [Field K] : HasPrincipalDivisors K (RatFunc K)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.Place.isRational_of_deg_eq_one
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
theorem isRational_of_deg_eq_one (h : v.deg = 1) : v.IsRational
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.Place.deg_eq_one_of_isRational
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
theorem deg_eq_one_of_isRational (hv : v.IsRational) : v.deg = 1
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_finitePlace_ne_zero_iff
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
theorem ord_finitePlace_ne_zero_iff {p : K[X]} (hp : Irreducible p) {q : K[X]} (hq : q ≠ 0) :
    (finitePlace K hp).ord (algebraMap K[X] (RatFunc K) q) ≠ 0 ↔ p ∣ q
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.inftyValuation_isEquiv_adicValuation
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
section PlaceInfty
variable [DecidableEq (RatFunc K)]
theorem inftyValuation_isEquiv_adicValuation :
    (RatFunc.inftyValuation K).IsEquiv (placeInfty K).adicValuation
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.placeInfty_ne_ofHeightOneSpectrum
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
section PlaceInfty
variable [DecidableEq (RatFunc K)]
theorem placeInfty_ne_ofHeightOneSpectrum (w : HeightOneSpectrum K[X]) :
    placeInfty K ≠ Place.ofHeightOneSpectrum w
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.eq_ofHeightOneSpectrum_or_eq_placeInfty
Source context 14 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
theorem eq_ofHeightOneSpectrum_or_eq_placeInfty [DecidableEq (RatFunc K)]
    (v : Place K (RatFunc K)) :
    (∃ w : HeightOneSpectrum K[X], v = Place.ofHeightOneSpectrum w) ∨ v = placeInfty K
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.exists_sub_algebraMap_intDegree_neg
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
section DegInfty
variable (K) [DecidableEq (RatFunc K)]
theorem exists_sub_algebraMap_intDegree_neg {x : RatFunc K}
    (hx : RatFunc.inftyValuation K x ≤ 1) :
    ∃ c : K, x - algebraMap K (RatFunc K) c = 0 ∨
      (x - algebraMap K (RatFunc K) c).intDegree < 0
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.deg_placeInfty
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
section DegInfty
variable (K) [DecidableEq (RatFunc K)]
theorem deg_placeInfty : (placeInfty K).deg = 1
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.le_exp_neg_one_of_lt_one
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
theorem le_exp_neg_one_of_lt_one {x : ℤᵐ⁰} (hx : x < 1) : x ≤ exp (-1 : ℤ)
AlgebraicCurve.Place.isUnit_algebraMap
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
theorem _root_.AlgebraicCurve.Place.isUnit_algebraMap {c : K} (hc : c ≠ 0) :
    IsUnit (algebraMap K v.toValuationSubring c)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.Place.adicValuation_algebraMap
Source context 14 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
open _root_.AlgebraicCurve.Place
theorem adicValuation_algebraMap {c : K} (hc : c ≠ 0) :
    v.adicValuation (algebraMap K F c) = 1
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_ofHeightOneSpectrum_eq_zero_of_notMem
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
theorem ord_ofHeightOneSpectrum_eq_zero_of_notMem (w : HeightOneSpectrum K[X]) {q : K[X]}
    (hq : q ≠ 0) (hmem : q ∉ w.asIdeal) :
    (Place.ofHeightOneSpectrum (K := K) (F := RatFunc K) w).ord
      (algebraMap K[X] (RatFunc K) q) = 0
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_placeInfty
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section PlaceInftyOrd
variable [DecidableEq (RatFunc K)]
theorem ord_placeInfty {f : RatFunc K} (hf : f ≠ 0) :
    (placeInfty K).ord f = -f.intDegree
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_placeInfty_algebraMap
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section PlaceInftyOrd
variable [DecidableEq (RatFunc K)]
theorem ord_placeInfty_algebraMap {q : K[X]} (hq : q ≠ 0) :
    (placeInfty K).ord (algebraMap K[X] (RatFunc K) q) = -(q.natDegree : ℤ)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.single_add_single_apply_eq_ord
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section IrreducibleDivisor
variable [DecidableEq (RatFunc K)]
theorem single_add_single_apply_eq_ord {p : K[X]} (hp : Irreducible p)
    (v : Place K (RatFunc K)) :
    (Finsupp.single (finitePlace K hp) (1 : ℤ)
        + Finsupp.single (placeInfty K) (-(p.natDegree : ℤ))) v
      = v.ord (algebraMap K[X] (RatFunc K) p)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.degree_single_add_single
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section IrreducibleDivisor
variable [DecidableEq (RatFunc K)]
theorem degree_single_add_single {p : K[X]} (hp : Irreducible p) :
    Divisor.degree (Finsupp.single (finitePlace K hp) (1 : ℤ)
        + Finsupp.single (placeInfty K) (-(p.natDegree : ℤ))) = 0
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.principalDivisor

The divisor of a nonzero rational function, with coefficients given by its orders at the places.

Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
def principalDivisor {f : RatFunc K} (hf : f ≠ 0) : Divisor K (RatFunc K)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.principalDivisor_apply
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
theorem principalDivisor_apply {f : RatFunc K} (hf : f ≠ 0) (v : Place K (RatFunc K)) :
    principalDivisor hf v = v.ord f
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.principalDivisor_isPrincipal
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
theorem principalDivisor_isPrincipal {f : RatFunc K} (hf : f ≠ 0) :
    (principalDivisor hf).IsPrincipal
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.degree_principalDivisor
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
theorem degree_principalDivisor {f : RatFunc K} (hf : f ≠ 0) :
    Divisor.degree (principalDivisor hf) = 0
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.sum_ord_mul_deg_eq_zero
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
theorem sum_ord_mul_deg_eq_zero {f : RatFunc K} (hf : f ≠ 0) :
    ∑ v ∈ (finite_setOf_ord_ne_zero hf).toFinset, v.ord f * (v.deg : ℤ) = 0
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.placeOfPoint_ne_placeInfty
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
theorem placeOfPoint_ne_placeInfty [DecidableEq (RatFunc K)] (a : K) :
    placeOfPoint K a ≠ placeInfty K
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_placeOfPoint_algebraMap_eq_mul
Source context 14 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
theorem ord_placeOfPoint_algebraMap_eq_mul (a : K) {q : K[X]} (hq : q ≠ 0) :
    (placeOfPoint K a).ord (algebraMap K[X] (RatFunc K) q)
      = (rootMultiplicity a q : ℤ)
          * (placeOfPoint K a).ord (algebraMap K[X] (RatFunc K) (X - C a))
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.dvd_ord_placeOfPoint
Source context 14 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
theorem dvd_ord_placeOfPoint (a : K) {f : RatFunc K} (hf : f ≠ 0) :
    (placeOfPoint K a).ord (algebraMap K[X] (RatFunc K) (X - C a)) ∣ (placeOfPoint K a).ord f
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_placeOfPoint_X_sub_C
Source context 14 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
theorem ord_placeOfPoint_X_sub_C (a : K) :
    (placeOfPoint K a).ord (algebraMap K[X] (RatFunc K) (X - C a)) = 1
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_placeOfPoint_algebraMap
Source context 14 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
theorem ord_placeOfPoint_algebraMap (a : K) {q : K[X]} (hq : q ≠ 0) :
    (placeOfPoint K a).ord (algebraMap K[X] (RatFunc K) q) = rootMultiplicity a q
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.exists_eq_placeOfPoint
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
variable (K)
theorem exists_eq_placeOfPoint [IsAlgClosed K] (w : HeightOneSpectrum K[X]) :
    ∃ a : K, Place.ofHeightOneSpectrum (K := K) (F := RatFunc K) w = placeOfPoint K a
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.eq_placeOfPoint_or_eq_placeInfty
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
variable (K)
theorem eq_placeOfPoint_or_eq_placeInfty [IsAlgClosed K] [DecidableEq (RatFunc K)]
    (v : Place K (RatFunc K)) :
    (∃ a : K, v = placeOfPoint K a) ∨ v = placeInfty K
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ofOption
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
variable (K)
def ofOption [DecidableEq (RatFunc K)] : Option K → Place K (RatFunc K)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ofOption_bijective
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
variable (K)
theorem ofOption_bijective [IsAlgClosed K] [DecidableEq (RatFunc K)] :
    Function.Bijective (ofOption K)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.placeEquivOption

The classification by base-field points, with none representing the place at infinity.

Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
variable (K)
def placeEquivOption [IsAlgClosed K] [DecidableEq (RatFunc K)] :
    Place K (RatFunc K) ≃ Option K
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.placeEquivOption_symm_some
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
variable (K)
theorem placeEquivOption_symm_some [IsAlgClosed K] [DecidableEq (RatFunc K)] (a : K) :
    (placeEquivOption K).symm (some a) = placeOfPoint K a
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.placeEquivOption_symm_none
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
variable (K)
theorem placeEquivOption_symm_none [IsAlgClosed K] [DecidableEq (RatFunc K)] :
    (placeEquivOption K).symm none = placeInfty K
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.placeEquivOption_placeOfPoint
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
variable (K)
theorem placeEquivOption_placeOfPoint [IsAlgClosed K] [DecidableEq (RatFunc K)] (a : K) :
    placeEquivOption K (placeOfPoint K a) = some a
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.placeEquivOption_placeInfty
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
variable (K)
theorem placeEquivOption_placeInfty [IsAlgClosed K] [DecidableEq (RatFunc K)] :
    placeEquivOption K (placeInfty K) = none
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.deg_eq_one_of_isAlgClosed
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable (K : Type*) [Field K]
variable {K}
variable (K)
theorem deg_eq_one_of_isAlgClosed [IsAlgClosed K] (v : Place K (RatFunc K)) : v.deg = 1
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.algebraMap_polynomial_ne_zero
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
theorem algebraMap_polynomial_ne_zero {q : K[X]} (hq : q ≠ 0) :
    algebraMap K[X] (RatFunc K) q ≠ 0
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.algebraMap_C
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
theorem algebraMap_C (c : K) :
    algebraMap K[X] (RatFunc K) (C c) = algebraMap K (RatFunc K) c
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.evalAt_placeOfPoint_algebraMap
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
theorem evalAt_placeOfPoint_algebraMap (a : K) (q : K[X]) :
    (placeOfPoint K a).evalAt (algebraMap K[X] (RatFunc K) q) = q.eval a
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.evalAt_placeOfPoint_X_sub_C
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
theorem evalAt_placeOfPoint_X_sub_C (a b : K) :
    (placeOfPoint K a).evalAt (algebraMap K[X] (RatFunc K) (X - C b)) = a - b
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.mem_placeInfty_of_intDegree_nonpos
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section PlaceInfty
variable [DecidableEq (RatFunc K)]
theorem mem_placeInfty_of_intDegree_nonpos {f : RatFunc K} (hf : f ≠ 0)
    (h : f.intDegree ≤ 0) : f ∈ (placeInfty K).toValuationSubring
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.evalAt_placeInfty_eq
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section PlaceInfty
variable [DecidableEq (RatFunc K)]
theorem evalAt_placeInfty_eq {f : RatFunc K} {c : K}
    (h : f - algebraMap K (RatFunc K) c = 0
      ∨ (f - algebraMap K (RatFunc K) c).intDegree < 0) :
    (placeInfty K).evalAt f = c
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.evalAt_placeInfty_X_sub_C_div
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section PlaceInfty
variable [DecidableEq (RatFunc K)]
theorem evalAt_placeInfty_X_sub_C_div (a a₀ : K) :
    (placeInfty K).evalAt
        (algebraMap K[X] (RatFunc K) (X - C a) / algebraMap K[X] (RatFunc K) (X - C a₀))
      = 1
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.principalDivisor_X_sub_C
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section CrossRatio
variable [DecidableEq (RatFunc K)]
theorem principalDivisor_X_sub_C (b : K) :
    principalDivisor (algebraMap_polynomial_ne_zero (X_sub_C_ne_zero b))
      = Finsupp.single (placeOfPoint K b) 1 + Finsupp.single (placeInfty K) (-1)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_X_sub_C
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section CrossRatio
variable [DecidableEq (RatFunc K)]
theorem ord_X_sub_C (b : K) (v : Place K (RatFunc K)) :
    v.ord (algebraMap K[X] (RatFunc K) (X - C b))
      = (Finsupp.single (placeOfPoint K b) (1 : ℤ)
          + Finsupp.single (placeInfty K) (-1 : ℤ)) v
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_X_sub_C_placeOfPoint_of_ne
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section CrossRatio
variable [DecidableEq (RatFunc K)]
omit [DecidableEq (RatFunc K)] in
theorem ord_X_sub_C_placeOfPoint_of_ne {a b : K} (hab : a ≠ b) :
    (placeOfPoint K a).ord (algebraMap K[X] (RatFunc K) (X - C b)) = 0
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_X_sub_C_placeOfPoint_self
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section CrossRatio
variable [DecidableEq (RatFunc K)]
omit [DecidableEq (RatFunc K)] in
theorem ord_X_sub_C_placeOfPoint_self (b : K) :
    (placeOfPoint K b).ord (algebraMap K[X] (RatFunc K) (X - C b)) = 1
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_X_sub_C_placeInfty
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section CrossRatio
variable [DecidableEq (RatFunc K)]
theorem ord_X_sub_C_placeInfty (b : K) :
    (placeInfty K).ord (algebraMap K[X] (RatFunc K) (X - C b)) = -1
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.isRational_placeOfPoint
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section CrossRatio
variable [DecidableEq (RatFunc K)]
omit [DecidableEq (RatFunc K)] in
theorem isRational_placeOfPoint (a : K) : (placeOfPoint K a).IsRational
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.principalDivisor_X_sub_C_div
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section CrossRatio
variable [DecidableEq (RatFunc K)]
omit [DecidableEq (RatFunc K)] in
theorem principalDivisor_X_sub_C_div (a a₀ : K) :
    principalDivisor (div_ne_zero (algebraMap_polynomial_ne_zero (X_sub_C_ne_zero a))
        (algebraMap_polynomial_ne_zero (X_sub_C_ne_zero a₀)))
      = Finsupp.single (placeOfPoint K a) 1 + Finsupp.single (placeOfPoint K a₀) (-1)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.evalAt_placeOfPoint_X_sub_C_div
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section CrossRatio
variable [DecidableEq (RatFunc K)]
omit [DecidableEq (RatFunc K)] in
theorem evalAt_placeOfPoint_X_sub_C_div (a a₀ : K) {b : K} (hba₀ : b ≠ a₀) :
    (placeOfPoint K b).evalAt
        (algebraMap K[X] (RatFunc K) (X - C a) / algebraMap K[X] (RatFunc K) (X - C a₀))
      = (b - a) / (b - a₀)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.isRational_of_isAlgClosed
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
omit [DecidableEq (RatFunc K)] in
theorem isRational_of_isAlgClosed (v : Place K (RatFunc K)) : v.IsRational
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.algebraMap_const_ne_zero
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
omit [IsAlgClosed K] [DecidableEq (RatFunc K)] in
theorem algebraMap_const_ne_zero {c : K} (hc : c ≠ 0) : algebraMap K (RatFunc K) c ≠ 0
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
instance : DecidableEq (Place K (RatFunc K))
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_ne_zero_of_mem_support
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [IsAlgClosed K] [DecidableEq (RatFunc K)] in
theorem ord_ne_zero_of_mem_support {g : RatFunc K} (hg : g ≠ 0) {v : Place K (RatFunc K)}
    (hv : v ∈ (principalDivisor hg).support) : v.ord g ≠ 0
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.sum_ord_eq_zero
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [DecidableEq (RatFunc K)] in
theorem sum_ord_eq_zero {f : RatFunc K} (hf : f ≠ 0) :
    ∑ v ∈ (principalDivisor hf).support, v.ord f = 0
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.zpow_sum_eq_prod
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [IsAlgClosed K] [DecidableEq (RatFunc K)] in
theorem zpow_sum_eq_prod {c : K} (hc : c ≠ 0) {ι : Type*} (s : Finset ι) (n : ι → ℤ) :
    ∏ i ∈ s, c ^ n i = c ^ (∑ i ∈ s, n i)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.principalDivisor_congr
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [IsAlgClosed K] [DecidableEq (RatFunc K)] in
theorem principalDivisor_congr {f g : RatFunc K} (hf : f ≠ 0) (hg : g ≠ 0) (h : f = g) :
    principalDivisor hf = principalDivisor hg
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.reciprocity_algebraMap_right
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [DecidableEq (RatFunc K)] in
theorem reciprocity_algebraMap_right {f : RatFunc K} (hf : f ≠ 0) {c : K} (hc : c ≠ 0) :
    Divisor.evalFun f (principalDivisor (algebraMap_const_ne_zero hc))
      = Divisor.evalFun (algebraMap K (RatFunc K) c) (principalDivisor hf)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.reciprocity_mul_right
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [DecidableEq (RatFunc K)] in
theorem reciprocity_mul_right {f g₁ g₂ : RatFunc K} (hf : f ≠ 0) (hg₁ : g₁ ≠ 0) (hg₂ : g₂ ≠ 0)
    (hd₁ : ∀ v : Place K (RatFunc K), v.ord f = 0 ∨ v.ord g₁ = 0)
    (hd₂ : ∀ v : Place K (RatFunc K), v.ord f = 0 ∨ v.ord g₂ = 0)
    (h₁ : Divisor.evalFun f (principalDivisor hg₁) = Divisor.evalFun g₁ (principalDivisor hf))
    (h₂ : Divisor.evalFun f (principalDivisor hg₂)
      = Divisor.evalFun g₂ (principalDivisor hf)) :
    Divisor.evalFun f (principalDivisor (mul_ne_zero hg₁ hg₂))
      = Divisor.evalFun (g₁ * g₂) (principalDivisor hf)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.reciprocity_mul_left
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [DecidableEq (RatFunc K)] in
theorem reciprocity_mul_left {f₁ f₂ g : RatFunc K} (hf₁ : f₁ ≠ 0) (hf₂ : f₂ ≠ 0) (hg : g ≠ 0)
    (hd₁ : ∀ v : Place K (RatFunc K), v.ord f₁ = 0 ∨ v.ord g = 0)
    (hd₂ : ∀ v : Place K (RatFunc K), v.ord f₂ = 0 ∨ v.ord g = 0)
    (h₁ : Divisor.evalFun f₁ (principalDivisor hg) = Divisor.evalFun g (principalDivisor hf₁))
    (h₂ : Divisor.evalFun f₂ (principalDivisor hg)
      = Divisor.evalFun g (principalDivisor hf₂)) :
    Divisor.evalFun (f₁ * f₂) (principalDivisor hg)
      = Divisor.evalFun g (principalDivisor (mul_ne_zero hf₁ hf₂))
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.reciprocity_zpow_right
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [DecidableEq (RatFunc K)] in
theorem reciprocity_zpow_right {f g : RatFunc K} (hf : f ≠ 0) (hg : g ≠ 0) (n : ℤ)
    (hd : ∀ v : Place K (RatFunc K), v.ord f = 0 ∨ v.ord g = 0)
    (h : Divisor.evalFun f (principalDivisor hg)
      = Divisor.evalFun g (principalDivisor hf)) :
    Divisor.evalFun f (principalDivisor (zpow_ne_zero n hg))
      = Divisor.evalFun (g ^ n) (principalDivisor hf)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.reciprocity_zpow_left
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [DecidableEq (RatFunc K)] in
theorem reciprocity_zpow_left {f g : RatFunc K} (hf : f ≠ 0) (hg : g ≠ 0) (n : ℤ)
    (hd : ∀ v : Place K (RatFunc K), v.ord f = 0 ∨ v.ord g = 0)
    (h : Divisor.evalFun f (principalDivisor hg)
      = Divisor.evalFun g (principalDivisor hf)) :
    Divisor.evalFun (f ^ n) (principalDivisor hg)
      = Divisor.evalFun g (principalDivisor (zpow_ne_zero n hf))
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.exists_algebraMap_of_forall_ord_eq_zero
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [IsAlgClosed K] [DecidableEq (RatFunc K)] in
theorem exists_algebraMap_of_forall_ord_eq_zero {g : RatFunc K} (hg : g ≠ 0)
    (h : ∀ v : Place K (RatFunc K), v.ord g = 0) :
    ∃ c : K, c ≠ 0 ∧ g = algebraMap K (RatFunc K) c
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.crossRatio_reciprocity
Source context 18 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [IsAlgClosed K] in
omit [DecidableEq (RatFunc K)] in
theorem crossRatio_reciprocity {a a₀ b : K} (hba : b ≠ a) (hba₀ : b ≠ a₀) :
    Divisor.evalFun
        (algebraMap K[X] (RatFunc K) (X - C a) / algebraMap K[X] (RatFunc K) (X - C a₀))
        (principalDivisor (algebraMap_polynomial_ne_zero (X_sub_C_ne_zero b)))
      = Divisor.evalFun (algebraMap K[X] (RatFunc K) (X - C b))
        (principalDivisor (div_ne_zero (algebraMap_polynomial_ne_zero (X_sub_C_ne_zero a))
          (algebraMap_polynomial_ne_zero (X_sub_C_ne_zero a₀))))
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.reciprocity_of_forall_ord_eq_zero
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [DecidableEq (RatFunc K)] in
theorem reciprocity_of_forall_ord_eq_zero {f g : RatFunc K} (hf : f ≠ 0) (hg : g ≠ 0)
    (hzero : ∀ v : Place K (RatFunc K), v.ord g = 0) :
    Divisor.evalFun f (principalDivisor hg) = Divisor.evalFun g (principalDivisor hf)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_div_zpow
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [IsAlgClosed K] [DecidableEq (RatFunc K)] in
theorem ord_div_zpow (v : Place K (RatFunc K)) {g h : RatFunc K} (hg : g ≠ 0) (hh : h ≠ 0)
    (m : ℤ) : v.ord (g / h ^ m) = v.ord g - m * v.ord h
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.ord_X_sub_C_eq_zero_of_ne
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
omit [IsAlgClosed K] in
theorem ord_X_sub_C_eq_zero_of_ne (b : K) {v : Place K (RatFunc K)}
    (hvb : v ≠ placeOfPoint K b) (hvinf : v ≠ placeInfty K) :
    v.ord (algebraMap K[X] (RatFunc K) (X - C b)) = 0
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.reciprocity_linear
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
theorem reciprocity_linear (b : K) :
    ∀ (n : ℕ) (f : RatFunc K) (hf : f ≠ 0),
      (placeInfty K).ord f = 0 → (placeOfPoint K b).ord f = 0 →
      (principalDivisor hf).support.card ≤ n →
      Divisor.evalFun f
          (principalDivisor (algebraMap_polynomial_ne_zero (X_sub_C_ne_zero b)))
        = Divisor.evalFun (algebraMap K[X] (RatFunc K) (X - C b)) (principalDivisor hf)
AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve.RationalFunctionField.reciprocity_of_ord_placeInfty_eq_zero
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
noncomputable section
open Polynomial IsDedekindDomain WithZero IsLocalRing
open scoped Polynomial
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
open _root_.AlgebraicCurve.RationalFunctionField
variable {K : Type*} [Field K]
section Reciprocity
variable [IsAlgClosed K] [DecidableEq (RatFunc K)]
local instance : DecidableEq (Place K (RatFunc K)) := Classical.decEq _
theorem reciprocity_of_ord_placeInfty_eq_zero :
    ∀ (n : ℕ) (f g : RatFunc K) (hf : f ≠ 0) (hg : g ≠ 0),
      (placeInfty K).ord f = 0 →
      (∀ v : Place K (RatFunc K), v.ord f = 0 ∨ v.ord g = 0) →
      ((principalDivisor hg).support.erase (placeInfty K)).card ≤ n →
      Divisor.evalFun f (principalDivisor hg) = Divisor.evalFun g (principalDivisor hf)
AlgebraicCurve.RationalFunctionField.deg_eq_one_of_isAlgClosed
Source context 4 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed
open _root_.AlgebraicCurves.Places.Rational.Proofs
open _root_.AlgebraicCurve
  _root_.AlgebraicCurves.Places.Rational.Proofs.RationalFieldDegOneAlgClosed.AlgebraicCurve in
theorem _root_.AlgebraicCurve.RationalFunctionField.deg_eq_one_of_isAlgClosed (K : Type*) [Field
  K] [IsAlgClosed K] (v : Place K (RatFunc K)) : v.deg = 1