Module

Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.lean

Nyll.AlgebraicCurves.Places.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
63 declarations indexed from sourceView source ↗

Place ord restrict Along eq nat Card alg Hom of is Galois

Declarations

AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.mem_of_ord_nonneg
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem mem_of_ord_nonneg (w : Place K F) {f : F} (hf : f ≠ 0) (h : 0 ≤ w.ord f) :
    f ∈ w.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.mem_of_ord_sub_pos
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem mem_of_ord_sub_pos (w : Place K F) {f : F} {c : K}
    (h : 0 < w.ord (f - algebraMap K F c)) : f ∈ w.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.ord_eq_one_of_valuation_eq
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem ord_eq_one_of_valuation_eq (w : Place K F) {v' : Valuation F ℤᵐ⁰}
    (hv' : v'.valuationSubring = w.toValuationSubring) {x : F} (hx : v' x = exp (-1 : ℤ)) :
    w.ord x = 1
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.instIsPrincipalIdealRingAdjoinSingleton
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
instance instIsPrincipalIdealRingAdjoinSingleton (t : F) :
    IsPrincipalIdealRing (Algebra.adjoin K ({t} : Set F))
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.linGen

The difference of the adjoined generator and a base-field constant in the polynomial subalgebra.

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
def linGen (t : F) (c : K) : Algebra.adjoin K ({t} : Set F)
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.coe_linGen
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem coe_linGen (t : F) (c : K) :
    ((linGen t c : Algebra.adjoin K ({t} : Set F)) : F) = t - algebraMap K F c
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.linGen_ne_zero
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
include htr in
theorem linGen_ne_zero (c : K) : linGen t c ≠ 0
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.polyEquiv

The polynomial algebra equivalence furnished by a transcendental generator.

Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
def polyEquiv : Polynomial K ≃ₐ[K] Algebra.adjoin K ({t} : Set F)
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.polyEquiv_X_sub_C
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
theorem polyEquiv_X_sub_C (c : K) :
    polyEquiv t htr (Polynomial.X - Polynomial.C c) = linGen t c
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.prime_linGen
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
include htr in
theorem prime_linGen (c : K) : Prime (linGen t c)
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.linPrime

The height-one prime generated by the difference of the generator and a constant.

Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
def linPrime (c : K) : HeightOneSpectrum (Algebra.adjoin K ({t} : Set F))
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.basePlace

The place on the simple transcendental subfield corresponding to a base-field constant.

Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
open scoped IntermediateField.algebraAdjoinAdjoin
def basePlace (c : K) : Place K (IntermediateField.adjoin K ({t} : Set F))
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.algebraMap_linGen
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
open scoped IntermediateField.algebraAdjoinAdjoin
theorem algebraMap_linGen (c : K) :
    algebraMap (Algebra.adjoin K ({t} : Set F)) (IntermediateField.adjoin K ({t} : Set F))
        (linGen t c) =
      IntermediateField.AdjoinSimple.gen K t - algebraMap K _ c
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.ord_basePlace
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
open scoped IntermediateField.algebraAdjoinAdjoin
theorem ord_basePlace (c : K) :
    (basePlace t htr c).ord (IntermediateField.AdjoinSimple.gen K t - algebraMap K _ c) = 1
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.forall_algebraMap_mem
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
open scoped IntermediateField.algebraAdjoinAdjoin
theorem forall_algebraMap_mem (v : Place K (IntermediateField.adjoin K ({t} : Set F)))
    (ht : IntermediateField.AdjoinSimple.gen K t ∈ v.toValuationSubring)
    (r : Algebra.adjoin K ({t} : Set F)) :
    algebraMap (Algebra.adjoin K ({t} : Set F)) (IntermediateField.adjoin K ({t} : Set F)) r ∈
      v.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.eq_basePlace_of_ord_pos
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
open scoped IntermediateField.algebraAdjoinAdjoin
include htr in
theorem eq_basePlace_of_ord_pos (v : Place K (IntermediateField.adjoin K ({t} : Set F))) (c : K)
    (hv : 0 < v.ord (IntermediateField.AdjoinSimple.gen K t - algebraMap K _ c)) :
    v = basePlace t htr c
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.restrict_eq_basePlace
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Engine
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
section Transcendental
variable (t : F) (htr : Transcendental K t)
open scoped IntermediateField.algebraAdjoinAdjoin
include htr in
theorem restrict_eq_basePlace [Algebra.IsIntegral (IntermediateField.adjoin K ({t} : Set F)) F]
    (w : Place K F) (c : K) (hw : 0 < w.ord (t - algebraMap K F c)) :
    w.restrict (IntermediateField.adjoin K ({t} : Set F)) = basePlace t htr c ∧
    (w.restrict (IntermediateField.adjoin K ({t} : Set F))).ord
      (IntermediateField.AdjoinSimple.gen K t - algebraMap K _ c) = 1
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.adjoinEquivAlong

The equivalence between simple intermediate fields induced by a field embedding.

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Along
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (ι : F →ₐ[K] M) (y : F)
def adjoinEquivAlong :
    IntermediateField.adjoin K ({y} : Set F) ≃ₐ[K] IntermediateField.adjoin K ({ι y} : Set M)
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.coe_adjoinEquivAlong
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Along
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (ι : F →ₐ[K] M) (y : F)
theorem coe_adjoinEquivAlong (r : IntermediateField.adjoin K ({y} : Set F)) :
    ((adjoinEquivAlong ι y r : IntermediateField.adjoin K ({ι y} : Set M)) : M) = ι r
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.finiteAlong_of_finiteDimensional_adjoin
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Along
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (ι : F →ₐ[K] M) (y : F)
theorem finiteAlong_of_finiteDimensional_adjoin
    [h : FiniteDimensional (IntermediateField.adjoin K ({ι y} : Set M)) M] :
    FiniteAlong K ι
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.separableAlong_of_isSeparable_adjoin
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Along
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (ι : F →ₐ[K] M) (y : F)
theorem separableAlong_of_isSeparable_adjoin
    [Algebra.IsSeparable (IntermediateField.adjoin K ({ι y} : Set M)) M] :
    SeparableAlong K ι
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.isIntegral_of_finiteAlong
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Along
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (ι : F →ₐ[K] M) (y : F)
theorem isIntegral_of_finiteAlong (hfin : FiniteAlong K ι) : ι.toRingHom.IsIntegral
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.normalAlong_of_normal_adjoin
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Along
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (ι : F →ₐ[K] M) (y : F)
theorem normalAlong_of_normal_adjoin
    [Normal (IntermediateField.adjoin K ({ι y} : Set M)) M] :
    @Normal F M _ _ (algebraAlong ι)
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.toSemilinear

The homomorphism viewing intermediate-field automorphisms as semilinear base-field automorphisms.

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Galois
variable (K E M : Type*) [Field K] [Field E] [Field M]
  [Algebra K E] [Algebra K M] [Algebra E M] [IsScalarTower K E M]
def toSemilinear : (M ≃ₐ[E] M) →* SemilinearAut K M where
  toFun σ := SemilinearAut.ofAlgAut (σ.restrictScalars K)
  map_one' := by ext <;> rfl
  map_mul' _ _ := by ext <;> rfl
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.placeAction

The induced action of intermediate-field automorphisms on places.

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Galois
variable (K E M : Type*) [Field K] [Field E] [Field M]
  [Algebra K E] [Algebra K M] [Algebra E M] [IsScalarTower K E M]
def placeAction : MulAction (M ≃ₐ[E] M) (Place K M)
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.smul_place_def
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Galois
variable (K E M : Type*) [Field K] [Field E] [Field M]
  [Algebra K E] [Algebra K M] [Algebra E M] [IsScalarTower K E M]
attribute [local instance] placeAction
variable {K E M}
theorem smul_place_def (σ : M ≃ₐ[E] M) (W : Place K M) :
    σ • W = SemilinearAut.ofAlgAut (σ.restrictScalars K) • W
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.mem_smul_place_iff
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Galois
variable (K E M : Type*) [Field K] [Field E] [Field M]
  [Algebra K E] [Algebra K M] [Algebra E M] [IsScalarTower K E M]
attribute [local instance] placeAction
variable {K E M}
theorem mem_smul_place_iff (σ : M ≃ₐ[E] M) (W : Place K M) (y : M) :
    y ∈ (σ • W).toValuationSubring ↔ σ.symm y ∈ W.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.ord_smul_apply
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Galois
variable (K E M : Type*) [Field K] [Field E] [Field M]
  [Algebra K E] [Algebra K M] [Algebra E M] [IsScalarTower K E M]
attribute [local instance] placeAction
variable {K E M}
theorem ord_smul_apply (σ : M ≃ₐ[E] M) (W : Place K M) (y : M) : (σ • W).ord (σ y) = W.ord y
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.ord_apply_of_smul_eq
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Galois
variable (K E M : Type*) [Field K] [Field E] [Field M]
  [Algebra K E] [Algebra K M] [Algebra E M] [IsScalarTower K E M]
attribute [local instance] placeAction
variable {K E M}
theorem ord_apply_of_smul_eq {σ : M ≃ₐ[E] M} {W : Place K M} (h : σ • W = W) (y : M) :
    W.ord (σ y) = W.ord y
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.mem_fiberOver_iff_mem_orbit
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Galois
variable (K E M : Type*) [Field K] [Field E] [Field M]
  [Algebra K E] [Algebra K M] [Algebra E M] [IsScalarTower K E M]
attribute [local instance] placeAction
variable {K E M}
variable [FiniteDimensional E M] [IsGalois E M]
theorem mem_fiberOver_iff_mem_orbit (P W : Place K M) :
    W ∈ (P.restrict E).fiberOver M ↔ W ∈ MulAction.orbit (M ≃ₐ[E] M) P
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.card_stabilizer_mul_card_fiberOver
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Galois
variable (K E M : Type*) [Field K] [Field E] [Field M]
  [Algebra K E] [Algebra K M] [Algebra E M] [IsScalarTower K E M]
attribute [local instance] placeAction
variable {K E M}
variable [FiniteDimensional E M] [IsGalois E M]
theorem card_stabilizer_mul_card_fiberOver (P : Place K M) :
    Nat.card (MulAction.stabilizer (M ≃ₐ[E] M) P) * ((P.restrict E).fiberOver M).card =
      Module.finrank E M
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.inertiaDeg_eq_one_of_deg_eq_one
Source context 13 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Galois
variable (K E M : Type*) [Field K] [Field E] [Field M]
  [Algebra K E] [Algebra K M] [Algebra E M] [IsScalarTower K E M]
attribute [local instance] placeAction
variable {K E M}
variable [FiniteDimensional E M] [IsGalois E M]
omit [FiniteDimensional E M] [IsGalois E M] in
theorem inertiaDeg_eq_one_of_deg_eq_one {F' : Type*} [Field F'] [Algebra K F'] [Algebra F' M]
    [IsScalarTower K F' M] [Algebra.IsIntegral F' M] (W : Place K M) (hW : W.deg = 1) :
    W.inertiaDeg F' = 1
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.card_stabilizer_eq
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Galois
variable (K E M : Type*) [Field K] [Field E] [Field M]
  [Algebra K E] [Algebra K M] [Algebra E M] [IsScalarTower K E M]
attribute [local instance] placeAction
variable {K E M}
variable [FiniteDimensional E M] [IsGalois E M]
theorem card_stabilizer_eq (P : Place K M) (hdeg : P.deg = 1) :
    Nat.card (MulAction.stabilizer (M ≃ₐ[E] M) P) = P.ramificationIndex E
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.adjoinEquivNorm

The simple-field equivalence induced by an embedding sending the selected generator to its target.

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
def adjoinEquivNorm (ψ : F →ₐ[K] M) (hψ : ψ x = t) : K⟮x⟯ ≃ₐ[K] K⟮t⟯
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.coe_adjoinEquivNorm
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
theorem coe_adjoinEquivNorm (ψ : F →ₐ[K] M) (hψ : ψ x = t) (r : K⟮x⟯) :
    ((adjoinEquivNorm x t ψ hψ r : K⟮t⟯) : M) = ψ r
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.baseHom

The map back to the source field obtained from the inverse simple-field equivalence.

Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
def baseHom (ψ : F →ₐ[K] M) (hψ : ψ x = t) : K⟮t⟯ →+* F
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.psi_baseHom
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
theorem psi_baseHom (ψ : F →ₐ[K] M) (hψ : ψ x = t) (r : K⟮t⟯) : ψ (baseHom x t ψ hψ r) = r
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.baseHom_mem
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
theorem baseHom_mem (ψ : F →ₐ[K] M) (hψ : ψ x = t) (r : K⟮t⟯) : baseHom x t ψ hψ r ∈ K⟮x⟯
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.apply_eq_of_mem_adjoin
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
theorem apply_eq_of_mem_adjoin (ψ ψ' : F →ₐ[K] M) (hψ : ψ x = t) (hψ' : ψ' x = t) {f : F}
    (hf : f ∈ K⟮x⟯) : ψ f = ψ' f
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.psi'_baseHom
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
theorem psi'_baseHom (ψ ψ' : F →ₐ[K] M) (hψ : ψ x = t) (hψ' : ψ' x = t) (r : K⟮t⟯) :
    ψ' (baseHom x t ψ hψ r) = r
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.exists_algEquiv_comp_eq
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
theorem exists_algEquiv_comp_eq [Normal K⟮t⟯ M] (ψ ψ' : F →ₐ[K] M) (hψ : ψ x = t)
    (hψ' : ψ' x = t) : ∃ τ : M ≃ₐ[K⟮t⟯] M, ∀ f, τ (ψ f) = ψ' f
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.restrictAlong_comp
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
attribute [local instance] placeAction
theorem restrictAlong_comp (ψ : F →ₐ[K] M) (τ : M ≃ₐ[K⟮t⟯] M)
    (h₁ : (((τ : M →ₐ[K⟮t⟯] M).restrictScalars K).comp ψ).toRingHom.IsIntegral)
    (h₂ : ψ.toRingHom.IsIntegral) (W : Place K M) :
    W.restrictAlong (((τ : M →ₐ[K⟮t⟯] M).restrictScalars K).comp ψ) h₁ =
      (τ⁻¹ • W).restrictAlong ψ h₂
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.finiteAlong_norm
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
attribute [local instance] placeAction
theorem finiteAlong_norm [FiniteDimensional K⟮t⟯ M] (ψ : F →ₐ[K] M) (hψ : ψ x = t) :
    FiniteAlong K ψ
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.separableAlong_norm
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
attribute [local instance] placeAction
theorem separableAlong_norm [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M] (ψ : F →ₐ[K] M)
    (hψ : ψ x = t) : SeparableAlong K ψ
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.isGalois_along
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section AlongPsi
variable {K F M : Type*} [Field K] [Field F] [Field M] [Algebra K F] [Algebra K M]
  (x : F) (t : M)
attribute [local instance] placeAction
theorem isGalois_along [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M] (ψ : F →ₐ[K] M)
    (hψ : ψ x = t) : @IsGalois F _ M _ (algebraAlong ψ)
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.algebraMap_gen_sub
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
omit [IsAlgClosed K] [FiniteDimensional (↥K⟮t⟯) M] [IsGalois (↥K⟮t⟯) M] in
theorem algebraMap_gen_sub :
    algebraMap K⟮t⟯ M (IntermediateField.AdjoinSimple.gen K t - algebraMap K K⟮t⟯ j₀) =
      t - algebraMap K M j₀
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.transcendental_t
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
include hW₀ in
omit [FiniteDimensional (↥K⟮t⟯) M] [IsGalois (↥K⟮t⟯) M] in
theorem transcendental_t : Transcendental K t
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.psi_sub
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
omit [IsAlgClosed K] [FiniteDimensional (↥K⟮t⟯) M] [IsGalois (↥K⟮t⟯) M] in
theorem psi_sub (ψ : F →ₐ[K] M) (hψ : ψ x = t) : ψ (x - algebraMap K F j₀) = t - algebraMap K M j₀
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.ord_eq_card_stabilizer
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
include hW₀ in
theorem ord_eq_card_stabilizer :
    W₀.ord (t - algebraMap K M j₀) = Nat.card (MulAction.stabilizer (M ≃ₐ[K⟮t⟯] M) W₀)
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.ord_restrictAlong_pos
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
include hW₀ in
omit [IsAlgClosed K] [FiniteDimensional (↥K⟮t⟯) M] [IsGalois (↥K⟮t⟯) M] in
theorem ord_restrictAlong_pos (ψ : F →ₐ[K] M) (hψ : ψ x = t) (h : ψ.toRingHom.IsIntegral) :
    0 < (W₀.restrictAlong ψ h).ord (x - algebraMap K F j₀)
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.exists_smul_eq_of_ord_pos
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
include hW₀ in
theorem exists_smul_eq_of_ord_pos (W : Place K M) (hW : 0 < W.ord (t - algebraMap K M j₀)) :
    ∃ σ : M ≃ₐ[K⟮t⟯] M, σ • W₀ = W
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.inv_comp_apply
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
omit [IsAlgClosed K] [FiniteDimensional (↥K⟮t⟯) M] [IsGalois (↥K⟮t⟯) M] in
theorem inv_comp_apply (σ : M ≃ₐ[K⟮t⟯] M) (hι : ι x = t) :
    (((σ⁻¹ : M ≃ₐ[K⟮t⟯] M) : M →ₐ[K⟮t⟯] M).restrictScalars K).comp ι x = t
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.exists_restrictAlong_eq
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
include hι hW₀ in
theorem exists_restrictAlong_eq (w : Place K F) (hw : 0 < w.ord (x - algebraMap K F j₀)) :
    ∃ (ψ : F →ₐ[K] M) (hψ : ψ x = t), W₀.restrictAlong ψ (hint ψ hψ) = w
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.toGal

A ring automorphism fixing the embedded field, regarded as an automorphism over the simple subfield.

Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
def toGal (ψ : F →ₐ[K] M) (hψ : ψ x = t) (u : M ≃+* M) (hu : ∀ f, u (ψ f) = ψ f) :
    M ≃ₐ[K⟮t⟯] M
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.toGal_apply
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
omit [IsAlgClosed K] [FiniteDimensional (↥K⟮t⟯) M] [IsGalois (↥K⟮t⟯) M] in
theorem toGal_apply (ψ : F →ₐ[K] M) (hψ : ψ x = t) (u : M ≃+* M)
    (hu : ∀ f, u (ψ f) = ψ f) (y : M) : toGal x t ψ hψ u hu y = u y
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.restrictAlong_eq_iff
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
omit [IsAlgClosed K] in
theorem restrictAlong_eq_iff (ψ ψ' : F →ₐ[K] M) (hψ : ψ x = t) (hψ' : ψ' x = t) :
    W₀.restrictAlong ψ (hint ψ hψ) = W₀.restrictAlong ψ' (hint ψ' hψ') ↔
      ∃ σ : M ≃ₐ[K⟮t⟯] M, SemilinearAut.ofAlgAut (σ.restrictScalars K) • W₀ = W₀ ∧
        ψ' = ((σ : M →ₐ[K⟮t⟯] M).restrictScalars K).comp ψ
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.Emb

The embeddings that send the selected generator to the prescribed target element.

Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
abbrev Emb : Type _
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.embAction

The action by postcomposition of simple-subfield automorphisms on the selected embeddings.

Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
def embAction : MulAction (M ≃ₐ[K⟮t⟯] M) (Emb x t (K := K)) where
  smul σ ψ := ⟨((σ : M →ₐ[K⟮t⟯] M).restrictScalars K).comp ψ.1, by
    change σ (ψ.1 x) = t
    rw [ψ.2]
    exact σ.commutes (⟨t, IntermediateField.mem_adjoin_simple_self K t⟩ : K⟮t⟯)⟩
  one_smul ψ := Subtype.ext (AlgHom.ext fun _ => rfl)
  mul_smul σ τ ψ := Subtype.ext (AlgHom.ext fun _ => rfl)
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.smul_emb_val
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
attribute [local instance] embAction
omit [IsAlgClosed K] [FiniteDimensional (↥K⟮t⟯) M] [IsGalois (↥K⟮t⟯) M] in
theorem smul_emb_val (σ : M ≃ₐ[K⟮t⟯] M) (ψ : Emb x t (K := K)) :
    (σ • ψ).1 = ((σ : M →ₐ[K⟮t⟯] M).restrictScalars K).comp ψ.1
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.setOf_sameClass_eq_orbit
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
attribute [local instance] embAction
omit [IsAlgClosed K] in
theorem setOf_sameClass_eq_orbit (ψ : Emb x t (K := K)) :
    {ψ' : Emb x t (K := K) | W₀.restrictAlong ψ'.1 (hint ψ'.1 ψ'.2) = W₀.restrictAlong ψ.1 (hint
      ψ.1 ψ.2)} =
      MulAction.orbit (MulAction.stabilizer (M ≃ₐ[K⟮t⟯] M) W₀) ψ
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.card_stabilizer_emb
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
attribute [local instance] embAction
include hW₀ in
theorem card_stabilizer_emb (ψ : Emb x t (K := K)) :
    Nat.card (MulAction.stabilizer (MulAction.stabilizer (M ≃ₐ[K⟮t⟯] M) W₀) ψ) =
      Place.ramificationIndexAlong ψ.1 W₀
AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois.ProofAuxKcA.HilbertB.ord_restrictAlong_eq_card
Source context 12 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
noncomputable section
namespace ProofAuxKcA
namespace HilbertB
section Main
variable {K : Type*} [Field K] [IsAlgClosed K] {F M : Type*} [Field F] [Field M] [Algebra K F]
  [Algebra K M] (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
  [FiniteDimensional K⟮t⟯ M] [IsGalois K⟮t⟯ M]
  (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
  (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀))
attribute [local instance] placeAction
attribute [local instance] embAction
include hW₀ in
theorem ord_restrictAlong_eq_card (ψ : F →ₐ[K] M) (hψ : ψ x = t) :
    (W₀.restrictAlong ψ (hint ψ hψ)).ord (x - algebraMap K F j₀) =
      Nat.card {ψ' : Emb x t (K := K) //
        W₀.restrictAlong ψ'.1 (hint ψ'.1 ψ'.2) = W₀.restrictAlong ψ (hint ψ hψ)}
AlgebraicCurve.Place.ord_restrictAlong_eq_natCard_algHom_of_isGalois
Source context 5 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_ord_restrictAlong_eq_natCard_algHom_of_isGalois
open AlgebraicCurve IsDedekindDomain WithZero
open scoped IntermediateField
universe u v in
theorem _root_.AlgebraicCurve.Place.ord_restrictAlong_eq_natCard_algHom_of_isGalois
    (K : Type u) [Field K] [IsAlgClosed K]
    {F M : Type v} [Field F] [Field M] [Algebra K F] [Algebra K M]
    (x : F) (t : M) (j₀ : K) (ι : F →ₐ[K] M) (hι : ι x = t)
    (hfin : FiniteDimensional K⟮t⟯ M) (hgal : IsGalois K⟮t⟯ M)
    (hint : ∀ ψ : F →ₐ[K] M, ψ x = t → ψ.toRingHom.IsIntegral)
    (W₀ : Place K M) (hW₀ : 0 < W₀.ord (t - algebraMap K M j₀)) :
    (W₀.ord (t - algebraMap K M j₀) =
        Nat.card {σ : M ≃ₐ[K⟮t⟯] M // SemilinearAut.ofAlgAut (σ.restrictScalars K) • W₀ = W₀}) ∧
    (∀ (ψ : F →ₐ[K] M) (hψ : ψ x = t),
        0 < (W₀.restrictAlong ψ (hint ψ hψ)).ord (x - algebraMap K F j₀)) ∧
    (∀ w : Place K F, 0 < w.ord (x - algebraMap K F j₀) →
        ∃ (ψ : F →ₐ[K] M) (hψ : ψ x = t), W₀.restrictAlong ψ (hint ψ hψ) = w) ∧
    (∀ (ψ ψ' : F →ₐ[K] M) (hψ : ψ x = t) (hψ' : ψ' x = t),
        W₀.restrictAlong ψ (hint ψ hψ) = W₀.restrictAlong ψ' (hint ψ' hψ') ↔
          ∃ σ : M ≃ₐ[K⟮t⟯] M, SemilinearAut.ofAlgAut (σ.restrictScalars K) • W₀ = W₀ ∧
            ψ' = ((σ : M →ₐ[K⟮t⟯] M).restrictScalars K).comp ψ) ∧
    (∀ (ψ : F →ₐ[K] M) (hψ : ψ x = t),
        (W₀.restrictAlong ψ (hint ψ hψ)).ord (x - algebraMap K F j₀) =
          Nat.card {ψ' : {ψ' : F →ₐ[K] M // ψ' x = t} //
            W₀.restrictAlong ψ'.1 (hint ψ'.1 ψ'.2) = W₀.restrictAlong ψ (hint ψ hψ)})