Module

Place_exists_forgetConstants_restrict_eq_of_isConstantFieldExtension.lean

Nyll.AlgebraicCurves.Places.Place_exists_forgetConstants_restrict_eq_of_isConstantFieldExtension
20 declarations indexed from sourceView source ↗

Place exists forget Constants restrict eq of is Constant Field Extension

Declarations

AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.ord_nonneg_of_mem
Source context 6 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
theorem ord_nonneg_of_mem {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
    {f : F} (hf : f ∈ v.toValuationSubring) : 0 ≤ v.ord f
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.mem_of_ord_nonneg
Source context 6 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
theorem mem_of_ord_nonneg {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F)
    {f : F} (hf : f ≠ 0) (h : 0 ≤ v.ord f) : f ∈ v.toValuationSubring
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.exists_ord_eq_one
Source context 6 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
theorem exists_ord_eq_one {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F) :
    ∃ π : F, v.ord π = 1
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.instIsScalarTowerIntermediateFieldBase
Source context 6 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
instance instIsScalarTowerIntermediateFieldBase {K F F' : Type*} [Field K] [Field F] [Field
  F']
    [Algebra K F] [Algebra F F'] [Algebra K F'] [IsScalarTower K F F'] (L : IntermediateField F
      F') :
    IsScalarTower K L F'
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.minpoly_eq_map_of_constants
Source context 6 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
theorem minpoly_eq_map_of_constants {K F L : Type*} [Field K] [Field F] [Field L]
    [Algebra K F] [Algebra F L] [Algebra K L] [IsScalarTower K F L]
    (hconst : ∀ y : F, IsAlgebraic K y → y ∈ (algebraMap K F).range) {α : L} (hα : IsIntegral K α) :
    minpoly F α = (minpoly K α).map (algebraMap K F)
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.instIsScalarTowerValuationSubringLayer
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section FiniteLayer
variable {K F L : Type*} [Field K] [Field F] [Field L]
  [Algebra K F] [Algebra F L] [Algebra K L] [IsScalarTower K F L]
  [FiniteDimensional F L] [Algebra.IsSeparable F L]
instance instIsScalarTowerValuationSubringLayer (v : Place K F) :
    IsScalarTower K v.toValuationSubring L
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.isUnit_aeval_derivative_minpoly
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section FiniteLayer
variable {K F L : Type*} [Field K] [Field F] [Field L]
  [Algebra K F] [Algebra F L] [Algebra K L] [IsScalarTower K F L]
  [FiniteDimensional F L] [Algebra.IsSeparable F L]
omit [FiniteDimensional F L] [Algebra.IsSeparable F L] in
theorem isUnit_aeval_derivative_minpoly
    (hconst : ∀ y : F, IsAlgebraic K y → y ∈ (algebraMap K F).range)
    {α : L} (hα : IsIntegral K α) (hsep : (minpoly K α).Separable) (v : Place K F) :
    IsUnit (Polynomial.aeval (⟨α, hα.tower_top⟩ : Place.integralClosureAt L v)
      (Polynomial.derivative (minpoly v.toValuationSubring (⟨α, hα.tower_top⟩ :
        Place.integralClosureAt L v))))
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.differentIdeal_integralClosureAt_eq_top
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section FiniteLayer
variable {K F L : Type*} [Field K] [Field F] [Field L]
  [Algebra K F] [Algebra F L] [Algebra K L] [IsScalarTower K F L]
  [FiniteDimensional F L] [Algebra.IsSeparable F L]
theorem differentIdeal_integralClosureAt_eq_top
    (hconst : ∀ y : F, IsAlgebraic K y → y ∈ (algebraMap K F).range)
    {α : L} (hα : IsIntegral K α) (hsep : (minpoly K α).Separable)
    (htop : Algebra.adjoin F ({α} : Set L) = ⊤) (v : Place K F) :
    differentIdeal v.toValuationSubring (Place.integralClosureAt L v) = ⊤
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.ramificationIndex_eq_one_finiteLayer
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section FiniteLayer
variable {K F L : Type*} [Field K] [Field F] [Field L]
  [Algebra K F] [Algebra F L] [Algebra K L] [IsScalarTower K F L]
  [FiniteDimensional F L] [Algebra.IsSeparable F L]
theorem ramificationIndex_eq_one_finiteLayer
    (hconst : ∀ y : F, IsAlgebraic K y → y ∈ (algebraMap K F).range)
    {α : L} (hα : IsIntegral K α) (hsep : (minpoly K α).Separable)
    (htop : Algebra.adjoin F ({α} : Set L) = ⊤) (W : Place K L) :
    W.ramificationIndex F = 1
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.exists_finset_mem_adjoin
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section Square
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
  [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
  [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsAlgebraic K K']
theorem exists_finset_mem_adjoin {t : F'} (ht : t ∈ Algebra.adjoin F (Set.range (algebraMap K'
  F'))) :
    ∃ S : Finset K', t ∈ Algebra.adjoin F ((algebraMap K' F') '' (S : Set K'))
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.isIntegral_gen
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section LayerInSquare
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
  [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
  [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsAlgebraic K K'] [Algebra.IsIntegral F F']
omit [Algebra.IsIntegral F F'] in
theorem isIntegral_gen {b : F'} (hbint : IsIntegral K b) :
    IsIntegral K (IntermediateField.AdjoinSimple.gen F b)
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.minpoly_gen
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section LayerInSquare
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
  [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
  [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsAlgebraic K K'] [Algebra.IsIntegral F F']
omit [Algebra.IsIntegral F F'] in
theorem minpoly_gen {b : F'} :
    minpoly K (IntermediateField.AdjoinSimple.gen F b) = minpoly K b
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.adjoin_gen_eq_top
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section LayerInSquare
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
  [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
  [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsAlgebraic K K'] [Algebra.IsIntegral F F']
omit [Algebra.IsIntegral F F'] in
theorem adjoin_gen_eq_top {b : F'} (hbint : IsIntegral K b) :
    Algebra.adjoin F ({IntermediateField.AdjoinSimple.gen F b} : Set F⟮b⟯) = ⊤
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.adjoin_finset_eq_adjoin_simple
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section Main
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
  [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
  [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsAlgebraic K K'] [Algebra.IsSeparable K K'] [Algebra.IsIntegral F F']
omit [Algebra.IsAlgebraic K K'] [Algebra.IsSeparable K K'] in
theorem adjoin_finset_eq_adjoin_simple {S : Finset K'}
    {β : IntermediateField.adjoin K (S : Set K')} (hβ : K⟮β⟯ = ⊤) :
    IntermediateField.adjoin K (S : Set K') = K⟮(β : K')⟯
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.image_subset_adjoin
Source context 18 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section Main
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
  [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
  [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsAlgebraic K K'] [Algebra.IsSeparable K K'] [Algebra.IsIntegral F F']
omit [Algebra.IsIntegral F F'] [Algebra.IsSeparable K K'] in
omit [Algebra.IsSeparable K K'] in
omit [Algebra.IsIntegral F F'] in
omit [Algebra.IsSeparable K K'] in
omit [Algebra.IsIntegral F F'] in
omit [Algebra.IsSeparable K K'] in
omit [Algebra.IsIntegral F F'] in
omit [Algebra.IsSeparable K K'] in
omit [Algebra.IsIntegral F F'] in
omit [Algebra.IsSeparable K K'] in
theorem image_subset_adjoin {S : Finset K'}
    {β : IntermediateField.adjoin K (S : Set K')} (hβ : K⟮β⟯ = ⊤) :
    (algebraMap K' F') '' (S : Set K') ⊆ (F⟮algebraMap K' F' (β : K')⟯ : Set F')
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.adjoin_image_le
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section Main
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
  [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
  [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsAlgebraic K K'] [Algebra.IsSeparable K K'] [Algebra.IsIntegral F F']
omit [Algebra.IsIntegral F F'] [Algebra.IsSeparable K K'] in
omit [Algebra.IsIntegral F F'] in
theorem adjoin_image_le {S : Finset K'}
    {β : IntermediateField.adjoin K (S : Set K')} (hβ : K⟮β⟯ = ⊤) :
    Algebra.adjoin F ((algebraMap K' F') '' (S : Set K'))
      ≤ F⟮algebraMap K' F' (β : K')⟯.toSubalgebra
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.mem_valuationSubring_of_monic
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section Extension
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
  [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
  [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsAlgebraic K K'] [Algebra.IsSeparable K K'] [Algebra.IsIntegral F F']
theorem mem_valuationSubring_of_monic {R L : Type*} [CommRing R] [Field L] (O : ValuationSubring L)
    (φ : R →+* L) (hφ : ∀ r, φ r ∈ O) {x : L}
    (hx : ∃ p : Polynomial R, p.Monic ∧ p.eval₂ φ x = 0) : x ∈ O
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.inv_mem_of_isUnit
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section Extension
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
  [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
  [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsAlgebraic K K'] [Algebra.IsSeparable K K'] [Algebra.IsIntegral F F']
theorem inv_mem_of_isUnit {L : Type*} [Field L] (O : ValuationSubring L) {z : L} (hz : z ∈ O)
    (h : IsUnit (⟨z, hz⟩ : O)) : z⁻¹ ∈ O
AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants.S12CT.exists_forgetConstants_restrict_eq
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
noncomputable section
open IntermediateField AlgebraicCurve Polynomial
attribute [local instance 0] AlgebraicCurve.Place.valuationSubringAlgebra
namespace S12CT
section Extension
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
  [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
  [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
  [Algebra.IsAlgebraic K K'] [Algebra.IsSeparable K K'] [Algebra.IsIntegral F F']
theorem exists_forgetConstants_restrict_eq
    (hgen : Algebra.adjoin F (Set.range (algebraMap K' F')) = ⊤)
    (hconst : ∀ y : F, IsAlgebraic K y → y ∈ (algebraMap K F).range)
    {M : Type*} [Field M] [Algebra F M] [Algebra M F'] [IsScalarTower F M F']
    [Algebra K M] [IsScalarTower K M F'] [Algebra.IsIntegral M F']
    (V : Place K M) :
    ∃ W : Place K' F', (W.forgetConstants (K := K)).restrict M = V
AlgebraicCurve.Place.exists_forgetConstants_restrict_eq_of_isConstantFieldExtension
Source context 2 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.PlaceExistsForgetConstants
theorem _root_.AlgebraicCurve.Place.exists_forgetConstants_restrict_eq_of_isConstantFieldExtension
    {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
    [Algebra K K'] [Algebra K' F'] [Algebra K F'] [IsScalarTower K K' F']
    [Algebra K F] [Algebra F F'] [IsScalarTower K F F']
    [Algebra.IsAlgebraic K K'] [Algebra.IsSeparable K K'] [Algebra.IsIntegral F F']
    (hgen : Algebra.adjoin F (Set.range (algebraMap K' F')) = ⊤)
    (hconst : ∀ y : F, IsAlgebraic K y → y ∈ (algebraMap K F).range)
    {M : Type*} [Field M] [Algebra F M] [Algebra M F'] [IsScalarTower F M F']
    [Algebra K M] [IsScalarTower K M F'] [Algebra.IsIntegral M F']
    (V : AlgebraicCurve.Place K M) :
    ∃ W : AlgebraicCurve.Place K' F', (W.forgetConstants (K := K)).restrict M = V