Module

ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.lean

Nyll.AlgebraicCurves.Valuations.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
33 declarations indexed from sourceView source ↗

Valuation Subring is Discrete Valuation Ring of forall algebra Map mem of is Separable

Imports12
  • Mathlib.Algebra.Module.Torsion.Free
  • Mathlib.RingTheory.Valuation.ValuationSubring
  • Mathlib.RingTheory.Valuation.LocalSubring
  • Mathlib.RingTheory.RamificationInertia.Inertia
  • Mathlib.RingTheory.Localization.AtPrime.Basic
  • Mathlib.RingTheory.Localization.Integral
  • Mathlib.RingTheory.Ideal.GoingUp
  • Mathlib.RingTheory.IntegralClosure.IntegrallyClosed
  • Mathlib.RingTheory.DedekindDomain.IntegralClosure
  • Mathlib.RingTheory.DedekindDomain.AdicValuation
  • Mathlib.RingTheory.DedekindDomain.Dvr
  • Mathlib.RingTheory.DiscreteValuationRing.Basic
Imported by1

Declarations

AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.isUnit_iff_inv_mem
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section general
variable {L : Type*} [Field L]
theorem isUnit_iff_inv_mem (V : ValuationSubring L) (x : V) (hx0 : (x : L) ≠ 0) :
    IsUnit x ↔ (x : L)⁻¹ ∈ V
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.mem_maximalIdeal_iff_inv_not_mem
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section general
variable {L : Type*} [Field L]
theorem mem_maximalIdeal_iff_inv_not_mem (V : ValuationSubring L) (x : V) (hx0 : (x : L) ≠ 0) :
    x ∈ maximalIdeal V ↔ (x : L)⁻¹ ∉ V
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.mem_nonunits_iff_eq_zero_or_inv_not_mem
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section general
variable {L : Type*} [Field L]
theorem mem_nonunits_iff_eq_zero_or_inv_not_mem (V : ValuationSubring L) (x : L) :
    x ∈ V.nonunits ↔ x = 0 ∨ x⁻¹ ∉ V
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.inertiaDeg_maximalIdeal_eq_one_of_isLocalization
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section general
variable {L : Type*} [Field L]
theorem inertiaDeg_maximalIdeal_eq_one_of_isLocalization {R : Type*} [CommRing R]
    (p : Ideal R) [p.IsMaximal] (Rₚ : Type*) [CommRing Rₚ] [Algebra R Rₚ]
    [IsLocalization.AtPrime Rₚ p] [IsLocalRing Rₚ] :
    (maximalIdeal Rₚ).inertiaDeg R = 1
structure

Over

L96 ↗
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.Over

Compatibility of a valuation ring with a local base ring and its maximal ideal.

Source context 5 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
structure Over (C : Type*) [CommRing C] [IsLocalRing C] {F : Type*} [Field F] [Algebra C F]
    (B : ValuationSubring F) : Prop where
  /-- The valuation ring contains the image of the local base ring. -/
  mem : ∀ c : C, algebraMap C F c ∈ B
  /-- The preimage of the valuation-ring nonunits is the maximal ideal of the base ring. -/
  nonunit_iff : ∀ c : C, algebraMap C F c ∈ B.nonunits ↔ c ∈ maximalIdeal C
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.overAlgebra

The algebra structure on the valuation subring induced by the base-ring map landing in it.

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
abbrev overAlgebra (B : ValuationSubring F) (h : ∀ c : C, algebraMap C F c ∈ B) : Algebra C B
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.coe_algebraMap_overAlgebra
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
omit [IsDomain C] [IsDiscreteValuationRing C] in
theorem coe_algebraMap_overAlgebra (B : ValuationSubring F) (h : ∀ c : C, algebraMap C F c ∈ B)
    (c : C) :
    letI := overAlgebra B h
    ((algebraMap C B c : B) : F) = algebraMap C F c := rfl
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.isScalarTower_overAlgebra
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
omit [IsDomain C] [IsDiscreteValuationRing C] in
theorem isScalarTower_overAlgebra (B : ValuationSubring F) (h : ∀ c : C, algebraMap C F c ∈ B) :
    letI := overAlgebra B h
    IsScalarTower C B F := by
  let := overAlgebra B h
  exact IsScalarTower.of_algebraMap_eq fun a => rfl
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.algebraMap_injective
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
omit [IsDomain C] [IsDiscreteValuationRing C] in
include K in
theorem algebraMap_injective : Function.Injective (algebraMap C F)
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.algebraMap_overAlgebra_injective
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
omit [IsDomain C] [IsDiscreteValuationRing C] in
include K in
theorem algebraMap_overAlgebra_injective (B : ValuationSubring F)
    (h : ∀ c : C, algebraMap C F c ∈ B) :
    letI := overAlgebra B h
    Function.Injective (algebraMap C B) := by
  let := overAlgebra B h
  intro a b hab
  have := congrArg (fun z : B => (z : F)) hab
  exact algebraMap_injective K this
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.comap_maximalIdeal_overAlgebra
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
theorem comap_maximalIdeal_overAlgebra (B : ValuationSubring F) (h : Over C B) :
    letI := overAlgebra B h.mem
    (maximalIdeal B).comap (algebraMap C B) = maximalIdeal C := by
  let := overAlgebra B h.mem
  ext c
  rw [Ideal.mem_comap, ← h.nonunit_iff, ← ValuationSubring.coe_mem_nonunits_iff]
  rfl
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.liesOver_overAlgebra
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
theorem liesOver_overAlgebra (B : ValuationSubring F) (h : Over C B) :
    letI := overAlgebra B h.mem
    (maximalIdeal B).LiesOver (maximalIdeal C) := by
  let := overAlgebra B h.mem
  exact ⟨(comap_maximalIdeal_overAlgebra B h).symm⟩
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.mem_of_mem_integralClosure
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
omit [IsDomain C] [IsDiscreteValuationRing C] in
theorem mem_of_mem_integralClosure (B : ValuationSubring F) (h : ∀ c : C, algebraMap C F c ∈ B)
    {y : F} (hy : y ∈ integralClosure C F) : y ∈ B
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.ne_top_of_over
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
include K in
theorem ne_top_of_over (B : ValuationSubring F) (h : Over C B) : B ≠ ⊤
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.maximalIdeal_ne_bot
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
theorem maximalIdeal_ne_bot : maximalIdeal C ≠ ⊥
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.coe_algebraMap_integralClosure
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
omit [IsDomain C] [IsDiscreteValuationRing C] in
theorem coe_algebraMap_integralClosure (c : C) :
    ((algebraMap C (integralClosure C F) c : integralClosure C F) : F) = algebraMap C F c
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.algebraMap_integralClosure_injective
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
omit [IsDomain C] [IsDiscreteValuationRing C] in
include K in
theorem algebraMap_integralClosure_injective :
    Function.Injective (algebraMap C (integralClosure C F))
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.isTorsionFree_integralClosure
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
omit [IsDiscreteValuationRing C] in
include K in
theorem isTorsionFree_integralClosure : Module.IsTorsionFree C (integralClosure C F)
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.liesOver_maximalIdeal
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
include K in
theorem liesOver_maximalIdeal (v : HeightOneSpectrum (integralClosure C F)) :
    v.asIdeal.LiesOver (maximalIdeal C)
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.toOver

The inclusion of the integral closure into a valuation ring containing the base ring.

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
def toOver (B : ValuationSubring F) (h : ∀ c : C, algebraMap C F c ∈ B) :
    integralClosure C F →+* B
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.coe_toOver
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
omit [IsDomain C] [IsDiscreteValuationRing C] in
theorem coe_toOver (B : ValuationSubring F) (h : ∀ c : C, algebraMap C F c ∈ B)
    (s : integralClosure C F) : ((toOver B h s : B) : F) = (s : F)
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.center

The center of the valuation on the integral closure of the local base ring.

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
def center (B : ValuationSubring F) (h : ∀ c : C, algebraMap C F c ∈ B) :
    Ideal (integralClosure C F)
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.mem_center_iff
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
omit [IsDomain C] [IsDiscreteValuationRing C] in
theorem mem_center_iff (B : ValuationSubring F) (h : ∀ c : C, algebraMap C F c ∈ B)
    (s : integralClosure C F) :
    s ∈ center B h ↔ (s : F) ∈ B.nonunits
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.center_isPrime
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
instance center_isPrime (B : ValuationSubring F) (h : ∀ c : C, algebraMap C F c ∈ B) :
    (center B h).IsPrime
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.center_ne_bot
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
include K in
theorem center_ne_bot (B : ValuationSubring F) (h : Over C B) : center B h.mem ≠ ⊥
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.vOf

The height-one prime obtained from the center of a valuation lying over the local base ring.

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
def vOf (B : ValuationSubring F) (h : Over C B) :
    HeightOneSpectrum (integralClosure C F)
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.isFractionRing_integralClosure
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
section finite
variable [FiniteDimensional K F] [Algebra.IsSeparable K F]
omit [IsDiscreteValuationRing C] [Algebra.IsSeparable K F] in
include K in
theorem isFractionRing_integralClosure : IsFractionRing (integralClosure C F) F
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.isDedekindDomain_integralClosure
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
section finite
variable [FiniteDimensional K F] [Algebra.IsSeparable K F]
include K in
theorem isDedekindDomain_integralClosure : IsDedekindDomain (integralClosure C F)
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.finite_integralClosure
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
section finite
variable [FiniteDimensional K F] [Algebra.IsSeparable K F]
include K in
theorem finite_integralClosure : Module.Finite C (integralClosure C F)
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.W

The valuation ring at a height-one prime of the Dedekind integral closure.

Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
section finite
variable [FiniteDimensional K F] [Algebra.IsSeparable K F]
def W (v : HeightOneSpectrum (integralClosure C F)) : ValuationSubring F
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.W_def
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section dict
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
section finite
variable [FiniteDimensional K F] [Algebra.IsSeparable K F]
theorem W_def (v : HeightOneSpectrum (integralClosure C F)) :
    letI := isFractionRing_integralClosure K (F := F) (C := C)
    letI := isDedekindDomain_integralClosure K (F := F) (C := C)
    W K v = HeightOneSpectrum.valuationSubringAtPrime F v := rfl
AlgebraicCurves.Valuations.Proofs.ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable.EmbCountDvr.main
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
namespace EmbCountDvr
open IsLocalRing IsDedekindDomain
section main
variable {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
variable (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
variable {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
variable [FiniteDimensional K F] [Algebra.IsSeparable K F]
include K in
theorem main (B : ValuationSubring F) (h : Over C B) : IsDiscreteValuationRing ↥B
ValuationSubring.isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
Source context 4 commands

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

section ProofImplementation
namespace AlgebraicCurves.Valuations.Proofs
namespace ValuationSubring_isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
open IsLocalRing in
theorem _root_.ValuationSubring.isDiscreteValuationRing_of_forall_algebraMap_mem_of_isSeparable
    {C : Type*} [CommRing C] [IsDomain C] [IsDiscreteValuationRing C]
    (K : Type*) [Field K] [Algebra C K] [IsFractionRing C K]
    {F : Type*} [Field F] [Algebra K F] [Algebra C F] [IsScalarTower C K F]
    [FiniteDimensional K F] [Algebra.IsSeparable K F]
    (B : ValuationSubring F) (hCB : ∀ c : C, algebraMap C F c ∈ B)
    (hCBmax : ∀ c : C, algebraMap C F c ∈ B.nonunits ↔ c ∈ maximalIdeal C) :
    IsDiscreteValuationRing ↥B