Module

Place_ord_diffCoeff_D_nonneg.lean

Nyll.AlgebraicCurves.Places.Place_ord_diffCoeff_D_nonneg
11 declarations indexed from sourceView source ↗

Place ord diff Coeff D nonneg

Declarations

AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg.AlgebraicCurve.FF2R4.polyMem
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
noncomputable section
open IsDedekindDomain WithZero IsLocalRing KaehlerDifferential
open scoped TensorProduct
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace FF2R4
open _root_.AlgebraicCurve.Place
theorem polyMem {K : Type*} [Field K] (u : Place K (RatFunc K))
    (hX : (RatFunc.X : RatFunc K) ∈ u.toValuationSubring) (p : Polynomial K) :
    algebraMap (Polynomial K) (RatFunc K) p ∈ u.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg.AlgebraicCurve.FF2R4.isLocalization_valuationSubring
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
noncomputable section
open IsDedekindDomain WithZero IsLocalRing KaehlerDifferential
open scoped TensorProduct
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace FF2R4
open _root_.AlgebraicCurve.Place
theorem isLocalization_valuationSubring {K Φ : Type*} [Field K] [Field Φ] [Algebra K Φ]
    (w : Place K Φ) {R : Type*} [CommRing R] [IsDedekindDomain R] [Algebra R Φ]
    [IsFractionRing R Φ] (P : HeightOneSpectrum R) [Algebra R w.toValuationSubring]
    (halg : ∀ r : R, (algebraMap R w.toValuationSubring r : Φ) = algebraMap R Φ r)
    (heq : w.toValuationSubring = HeightOneSpectrum.valuationSubringAtPrime Φ P)
    (hmem : ∀ {r : R}, r ≠ 0 → (r ∈ P.asIdeal ↔ 0 < w.ord (algebraMap R Φ r))) :
    IsLocalization P.asIdeal.primeCompl w.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg.AlgebraicCurve.FF2R4.isAlgebraic_residue
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
noncomputable section
open IsDedekindDomain WithZero IsLocalRing KaehlerDifferential
open scoped TensorProduct
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace FF2R4
open _root_.AlgebraicCurve.Place
theorem isAlgebraic_residue {R S : Type*} [CommRing R] [CommRing S] [Algebra R S]
    [IsLocalRing R] [IsLocalRing S] [IsLocalHom (algebraMap R S)]
    {x : S} (hx : ∃ p : Polynomial R, p.Monic ∧ Polynomial.eval₂ (algebraMap R S) x p = 0) :
    IsAlgebraic (IsLocalRing.ResidueField R) (IsLocalRing.residue S x)
AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg.AlgebraicCurve.FF2R4.toValuationSubringOfRestrictEq
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
noncomputable section
open IsDedekindDomain WithZero IsLocalRing KaehlerDifferential
open scoped TensorProduct
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace FF2R4
open _root_.AlgebraicCurve.Place
section Dict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F']
  [FiniteDimensional F F'] [Algebra.IsSeparable F F']
variable {v : Place K F} {w : Place K F'}
def toValuationSubringOfRestrictEq (hw : w.restrict F = v) :
    integralClosureAt F' v →+* w.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg.AlgebraicCurve.FF2R4.coe_toValuationSubringOfRestrictEq
Source context 14 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
noncomputable section
open IsDedekindDomain WithZero IsLocalRing KaehlerDifferential
open scoped TensorProduct
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace FF2R4
open _root_.AlgebraicCurve.Place
section Dict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F']
  [FiniteDimensional F F'] [Algebra.IsSeparable F F']
variable {v : Place K F} {w : Place K F'}
omit [FiniteDimensional F F'] in
theorem coe_toValuationSubringOfRestrictEq (hw : w.restrict F = v)
    (c : integralClosureAt F' v) :
    (toValuationSubringOfRestrictEq hw c : F')
      = algebraMap (integralClosureAt F' v) F' c
AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg.AlgebraicCurve.FF2R4.residueOfCenter
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
noncomputable section
open IsDedekindDomain WithZero IsLocalRing KaehlerDifferential
open scoped TensorProduct
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace FF2R4
open _root_.AlgebraicCurve.Place
section Dict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F']
  [FiniteDimensional F F'] [Algebra.IsSeparable F F']
variable {v : Place K F} {w : Place K F'}
def residueOfCenter (hw : w.restrict F = v) :
    integralClosureAt F' v →+* w.ResidueField
AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg.AlgebraicCurve.FF2R4.residueOfCenter_apply
Source context 14 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
noncomputable section
open IsDedekindDomain WithZero IsLocalRing KaehlerDifferential
open scoped TensorProduct
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace FF2R4
open _root_.AlgebraicCurve.Place
section Dict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F']
  [FiniteDimensional F F'] [Algebra.IsSeparable F F']
variable {v : Place K F} {w : Place K F'}
omit [FiniteDimensional F F'] in
theorem residueOfCenter_apply (hw : w.restrict F = v) (c : integralClosureAt F' v) :
    residueOfCenter hw c = IsLocalRing.residue w.toValuationSubring
      (toValuationSubringOfRestrictEq hw c)
AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg.AlgebraicCurve.FF2R4.surjective_residueOfCenter
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
noncomputable section
open IsDedekindDomain WithZero IsLocalRing KaehlerDifferential
open scoped TensorProduct
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace FF2R4
open _root_.AlgebraicCurve.Place
section Dict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F']
  [FiniteDimensional F F'] [Algebra.IsSeparable F F']
variable {v : Place K F} {w : Place K F'}
theorem surjective_residueOfCenter (hw : w.restrict F = v) :
    Function.Surjective (residueOfCenter hw)
AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg.AlgebraicCurve.FF2R4.engine
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
noncomputable section
open IsDedekindDomain WithZero IsLocalRing KaehlerDifferential
open scoped TensorProduct
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace FF2R4
open _root_.AlgebraicCurve.Place
theorem engine {K : Type*} [Field K] [CharZero K] {F : Type*} [Field F] [Algebra K F]
    [Algebra (RatFunc K) F] [IsScalarTower K (RatFunc K) F] [FiniteDimensional (RatFunc K) F]
    (x : F) [Algebra.IsAlgebraic (IntermediateField.adjoin K ({x} : Set F)) F]
    (v : Place K F) {u : Place K (RatFunc K)} (hu : Place.restrict (RatFunc K) v = u)
    (ht : v.ord (algebraMap (RatFunc K) F RatFunc.X) = 1)
    {f : F} (hf : 0 ≤ v.ord f) :
    0 ≤ v.ord (Place.diffCoeff (algebraMap (RatFunc K) F RatFunc.X) (D K F f))
AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg.AlgebraicCurve.FF2R4.ord_diffCoeff_D_nonneg
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
noncomputable section
open IsDedekindDomain WithZero IsLocalRing KaehlerDifferential
open scoped TensorProduct
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace FF2R4
open _root_.AlgebraicCurve.Place
theorem ord_diffCoeff_D_nonneg {K F : Type*} [Field K] [Field F] [Algebra K F] [CharZero K]
    (x : F) [FiniteDimensional (IntermediateField.adjoin K ({x} : Set F)) F]
    (v : AlgebraicCurve.Place K F) {t : F} (ht : v.ord t = 1) {f : F} (hf : 0 ≤ v.ord f) :
    0 ≤ v.ord (AlgebraicCurve.Place.diffCoeff t (KaehlerDifferential.D K F f))
AlgebraicCurve.Place.ord_diffCoeff_D_nonneg
Source context 2 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_diffCoeff_D_nonneg
theorem _root_.AlgebraicCurve.Place.ord_diffCoeff_D_nonneg {K F : Type*} [Field K] [Field F]
  [Algebra K F] [CharZero K] (x : F)
    [FiniteDimensional (IntermediateField.adjoin K ({x} : Set F)) F] (v : AlgebraicCurve.Place K F)
      {t : F}
    (ht : v.ord t = 1) {f : F} (hf : 0 ≤ v.ord f) :
    0 ≤ v.ord (AlgebraicCurve.Place.diffCoeff t (KaehlerDifferential.D K F f))