Module

Place_exists_toValuationSubring_eq_comap.lean

Nyll.AlgebraicCurves.Places.Place_exists_toValuationSubring_eq_comap
21 declarations indexed from sourceView source ↗

Place exists to Valuation Subring eq comap

Imports4
Imported by1

Declarations

AlgebraicCurve.Place.ord_nonneg_of_mem'
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section SinglePlace
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
theorem _root_.AlgebraicCurve.Place.ord_nonneg_of_mem' {f : F} (hf : f ∈
  v.toValuationSubring) : 0 ≤ v.ord f
AlgebraicCurve.Place.mem_of_ord_nonneg'
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section SinglePlace
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
open _root_.AlgebraicCurve.Place
theorem _root_.AlgebraicCurve.Place.mem_of_ord_nonneg' {f : F} (hf : f ≠ 0) (h : 0 ≤ v.ord
  f) :
    f ∈ v.toValuationSubring
AlgebraicCurve.Place.mem_iff_ord_nonneg'
Source context 14 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section SinglePlace
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
theorem _root_.AlgebraicCurve.Place.mem_iff_ord_nonneg' {f : F} (hf : f ≠ 0) :
    f ∈ v.toValuationSubring ↔ 0 ≤ v.ord f
AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap.AlgebraicCurve.Place.exists_ord_pos_mem'
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section SinglePlace
variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
theorem exists_ord_pos_mem' : ∃ f : F, f ≠ 0 ∧ 0 < v.ord f ∧ f ∈ v.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap.AlgebraicCurve.Place.algebraMap_ne_zero'
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
theorem algebraMap_ne_zero' {f : F} (hf : f ≠ 0) : algebraMap F F' f ≠ 0
AlgebraicCurve.Place.comap_algebraMap_ne_top'
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
theorem _root_.AlgebraicCurve.Place.comap_algebraMap_ne_top' [Algebra.IsIntegral F F'] :
    w.toValuationSubring.comap (algebraMap F F') ≠ ⊤
AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap.AlgebraicCurve.Place.mem_comap_iff_ord_nonneg'
Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
theorem mem_comap_iff_ord_nonneg' {f : F} (hf : f ≠ 0) :
    f ∈ w.toValuationSubring.comap (algebraMap F F') ↔
      0 ≤ w.ord (algebraMap F F' f)
AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap.AlgebraicCurve.Place.isUnit_mk_comap_iff'
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
theorem isUnit_mk_comap_iff' {f : F} (hf : f ≠ 0)
    (hmem : f ∈ w.toValuationSubring.comap (algebraMap F F')) :
    IsUnit (⟨f, hmem⟩ : w.toValuationSubring.comap (algebraMap F F')) ↔
      w.ord (algebraMap F F' f) = 0
AlgebraicCurve.Place.exists_ord_algebraMap_pos'
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
theorem _root_.AlgebraicCurve.Place.exists_ord_algebraMap_pos' [Algebra.IsIntegral F F'] :
    ∃ f : F, f ≠ 0 ∧ 0 < w.ord (algebraMap F F' f)
AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap.AlgebraicCurve.Place.ramificationIndex'
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
def ramificationIndex' (F : Type*) [Field F] [Algebra F F'] : ℕ
AlgebraicCurve.Place.ramificationIndex'_le_ord
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
theorem _root_.AlgebraicCurve.Place.ramificationIndex'_le_ord {f : F} (hf : f ≠ 0)
    (hpos : 0 < w.ord (algebraMap F F' f)) :
    (ramificationIndex' (F := F) w : ℤ) ≤ w.ord (algebraMap F F' f)
AlgebraicCurve.Place.ramificationIndex'_set_nonempty
Source context 19 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable [Algebra.IsIntegral F F']
theorem _root_.AlgebraicCurve.Place.ramificationIndex'_set_nonempty :
    {n : ℕ | 0 < n ∧ ∃ f : F, f ≠ 0 ∧ w.ord (algebraMap F F' f) = n}.Nonempty
AlgebraicCurve.Place.ramificationIndex'_pos
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable [Algebra.IsIntegral F F']
open _root_.AlgebraicCurve.Place
theorem _root_.AlgebraicCurve.Place.ramificationIndex'_pos : 0 < ramificationIndex' (F :=
  F) w
AlgebraicCurve.Place.exists_ord_eq_ramificationIndex'
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable [Algebra.IsIntegral F F']
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
theorem _root_.AlgebraicCurve.Place.exists_ord_eq_ramificationIndex' :
    ∃ f : F, f ≠ 0 ∧ w.ord (algebraMap F F' f) = ramificationIndex' (F := F) w
AlgebraicCurve.Place.ramificationIndex'_dvd_ord
Source context 22 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable [Algebra.IsIntegral F F']
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
theorem _root_.AlgebraicCurve.Place.ramificationIndex'_dvd_ord {f : F} (hf : f ≠ 0) :
    (ramificationIndex' (F := F) w : ℤ) ∣ w.ord (algebraMap F F' f)
AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap.AlgebraicCurve.Place.irreducible_mk_comap'
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable [Algebra.IsIntegral F F']
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
theorem irreducible_mk_comap' {g : F} (hg0 : g ≠ 0)
    (hmem : g ∈ w.toValuationSubring.comap (algebraMap F F'))
    (hge : w.ord (algebraMap F F' g) = ramificationIndex' (F := F) w) :
    Irreducible (⟨g, hmem⟩ : w.toValuationSubring.comap (algebraMap F F'))
AlgebraicCurve.Place.isPrincipalIdealRing_comap'
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable [Algebra.IsIntegral F F']
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
theorem _root_.AlgebraicCurve.Place.isPrincipalIdealRing_comap' :
    IsPrincipalIdealRing (w.toValuationSubring.comap (algebraMap F F'))
AlgebraicCurve.Place.restrict'
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable [Algebra.IsIntegral F F']
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section RestrictDef
variable [Algebra K F] [IsScalarTower K F F']
variable (F) in
def _root_.AlgebraicCurve.Place.restrict' : Place K F where
  toValuationSubring := w.toValuationSubring.comap (algebraMap F F')
  algebraMap_mem' a := by
    rw [ValuationSubring.mem_comap, ← IsScalarTower.algebraMap_apply]
    exact w.algebraMap_mem' a
  ne_top' := w.comap_algebraMap_ne_top'
  isPrincipalIdealRing' := w.isPrincipalIdealRing_comap'
AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap.AlgebraicCurve.Place.ord_restrict'
Source context 28 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable [Algebra.IsIntegral F F']
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section RestrictDef
variable [Algebra K F] [IsScalarTower K F F']
variable (F) in
open _root_.AlgebraicCurve.Place
theorem ord_restrict' (f : F) :
    w.ord (algebraMap F F' f) = ramificationIndex' (F := F) w * (w.restrict' F).ord f
AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap.AlgebraicCurve.Place.rowMain
Source context 28 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
noncomputable section
open IsDedekindDomain WithZero IsLocalRing
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
namespace Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section Restrict
variable {K F F' : Type*} [Field K] [Field F] [Field F']
  [Algebra K F'] [Algebra F F']
variable (w : Place K F')
open _root_.AlgebraicCurve.Place
variable {w} in
variable {w} in
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
variable [Algebra.IsIntegral F F']
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
open _root_.AlgebraicCurve.Place
section RestrictDef
variable [Algebra K F] [IsScalarTower K F F']
variable (F) in
open _root_.AlgebraicCurve.Place
theorem rowMain :
    ∃ v : Place K F, v.toValuationSubring = w.toValuationSubring.comap (algebraMap F F')
AlgebraicCurve.Place.exists_toValuationSubring_eq_comap
Source context 3 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap
open _root_.AlgebraicCurve
  _root_.AlgebraicCurves.Places.Proofs.Place_exists_toValuationSubring_eq_comap.AlgebraicCurve in
theorem _root_.AlgebraicCurve.Place.exists_toValuationSubring_eq_comap {K F F' : Type*} [Field K]
  [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsIntegral F F'] (w : Place K F') :
    ∃ v : Place K F, v.toValuationSubring = w.toValuationSubring.comap (algebraMap F F')