Module

Place_eq_of_comap_toValuationSubring_eq_of_isRational.lean

Nyll.AlgebraicCurves.Places.Place_eq_of_comap_toValuationSubring_eq_of_isRational
22 declarations indexed from sourceView source ↗

Place eq of comap to Valuation Subring eq of is Rational

Declarations

AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.ord_nonneg_of_mem
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section OrdToolkit
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem ord_nonneg_of_mem (v : Place K F) {f : F} (hf : f ∈ v.toValuationSubring) : 0 ≤
  v.ord f
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.mem_of_ord_nonneg
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section OrdToolkit
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem mem_of_ord_nonneg (v : Place K F) {f : F} (hf : f ≠ 0) (h : 0 ≤ v.ord f) :
    f ∈ v.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.mem_iff_ord_nonneg
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section OrdToolkit
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem mem_iff_ord_nonneg (v : Place K F) {f : F} (hf : f ≠ 0) :
    f ∈ v.toValuationSubring ↔ 0 ≤ v.ord f
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.exists_isUnit_of_ord_eq_zero
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section OrdToolkit
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem exists_isUnit_of_ord_eq_zero (v : Place K F) {f : F} (hf : f ≠ 0) (h : v.ord f = 0)
  :
    ∃ hm : f ∈ v.toValuationSubring, IsUnit (⟨f, hm⟩ : v.toValuationSubring)
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.ord_pos_of_residue_eq_zero
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section OrdToolkit
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem ord_pos_of_residue_eq_zero (v : Place K F) {f : F} (hf : f ≠ 0) (hm : f ∈
  v.toValuationSubring)
    (hres : IsLocalRing.residue v.toValuationSubring ⟨f, hm⟩ = 0) : 0 < v.ord f
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.ord_eq_zero_of_residue_ne_zero
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section OrdToolkit
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem ord_eq_zero_of_residue_ne_zero (v : Place K F) {f : F} (hm : f ∈
  v.toValuationSubring)
    (hres : IsLocalRing.residue v.toValuationSubring ⟨f, hm⟩ ≠ 0) : v.ord f = 0
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.ord_pow
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section OrdToolkit
variable {K F : Type*} [Field K] [Field F] [Algebra K F]
theorem ord_pow (v : Place K F) {f : F} (hf : f ≠ 0) (n : ℕ) : v.ord (f ^ n) = n * v.ord f
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.mul_mem_span_range_of_mem
Source context 6 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section RegionF
theorem mul_mem_span_range_of_mem {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field
  F']
    [Algebra K F] [Algebra K' F'] [Algebra F F'] (V : Place K F) :
    ∀ x ∈ Submodule.span K' (Set.range (fun f : V.toValuationSubring => algebraMap F F' (f : F))),
      ∀ y ∈ Submodule.span K' (Set.range (fun f : V.toValuationSubring => algebraMap F F' (f : F))),
        x * y ∈ Submodule.span K' (Set.range (fun f : V.toValuationSubring => algebraMap F F' (f :
          F))) := by
  intro x hx y hy
  have hxy := Submodule.mul_mem_mul hx hy
  rw [Submodule.span_mul_span] at hxy
  refine Submodule.span_mono ?_ hxy
  rintro _ ⟨_, ⟨f, rfl⟩, _, ⟨g, rfl⟩, rfl⟩
  exact ⟨f * g, by simp⟩
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.exists_mem_span_div
Source context 6 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section RegionF
theorem exists_mem_span_div {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F']
    [Algebra K F] [Algebra K' F'] [Algebra F F']
    (hgen : IntermediateField.adjoin K' (Set.range (algebraMap F F')) = ⊤) (V : Place K F) (g : F')
      :
    ∃ b ∈ Submodule.span K' (Set.range (fun f : V.toValuationSubring => algebraMap F F' (f : F))),
      ∃ b' ∈ Submodule.span K' (Set.range (fun f : V.toValuationSubring => algebraMap F F' (f :
        F))),
        b' ≠ 0 ∧ g = b / b' := by
  have hmul := mul_mem_span_range_of_mem (K' := K') (F' := F') V
  have h1S : (1 : F') ∈
      Submodule.span K' (Set.range (fun f : V.toValuationSubring => algebraMap F F' (f : F))) :=
    Submodule.subset_span ⟨1, by simp⟩
  have hg : g ∈ IntermediateField.adjoin K' (Set.range (algebraMap F F')) := by
    rw [hgen]
    exact IntermediateField.mem_top
  change g ∈ Subfield.closure (Set.range (algebraMap K' F') ∪ Set.range (algebraMap F F')) at hg
  induction hg using Subfield.closure_induction with
  | mem y hy =>
      rcases hy with ⟨c, rfl⟩ | ⟨f, rfl⟩
      · refine ⟨algebraMap K' F' c, ?_, 1, h1S, one_ne_zero, (div_one _).symm⟩
        rw [Algebra.algebraMap_eq_smul_one]
        exact Submodule.smul_mem _ c h1S
      · by_cases hf : f ∈ V.toValuationSubring
        · exact ⟨algebraMap F F' f, Submodule.subset_span ⟨⟨f, hf⟩, rfl⟩, 1, h1S, one_ne_zero,
            (div_one _).symm⟩
        · have hf0 : f ≠ 0 := fun h0 => hf (h0 ▸ zero_mem _)
          have hfi : f⁻¹ ∈ V.toValuationSubring := (V.toValuationSubring.mem_or_inv_mem
            f).resolve_left hf
          refine ⟨1, h1S, algebraMap F F' f⁻¹, Submodule.subset_span ⟨⟨f⁻¹, hfi⟩, rfl⟩,
            (map_ne_zero (algebraMap F F')).mpr (inv_ne_zero hf0), ?_⟩
          rw [map_inv₀, one_div, inv_inv]
  | one => exact ⟨1, h1S, 1, h1S, one_ne_zero, (div_one 1).symm⟩
  | add x y _ _ hx hy =>
      obtain ⟨b, hb, b', hb', hb'0, rfl⟩ := hx
      obtain ⟨c, hc, c', hc', hc'0, rfl⟩ := hy
      exact ⟨b * c' + b' * c, add_mem (hmul b hb c' hc') (hmul b' hb' c hc), b' * c', hmul b' hb'
        c' hc',
        mul_ne_zero hb'0 hc'0, div_add_div b c hb'0 hc'0⟩
  | neg x _ hx =>
      obtain ⟨b, hb, b', hb', hb'0, rfl⟩ := hx
      exact ⟨-b, neg_mem hb, b', hb', hb'0, by ring⟩
  | inv x _ hx =>
      obtain ⟨b, hb, b', hb', hb'0, rfl⟩ := hx
      by_cases hb0 : b = 0
      · subst hb0
        exact ⟨0, zero_mem _, 1, h1S, one_ne_zero, by simp⟩
      · exact ⟨b', hb', b, hb, hb0, by rw [inv_div]⟩
  | mul x y _ _ hx hy =>
      obtain ⟨b, hb, b', hb', hb'0, rfl⟩ := hx
      obtain ⟨c, hc, c', hc', hc'0, rfl⟩ := hy
      exact ⟨b * c, hmul b hb c hc, b' * c', hmul b' hb' c' hc', mul_ne_zero hb'0 hc'0,
        by rw [div_mul_div_comm]⟩
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.spanV
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
abbrev spanV (V : Place K F) : Submodule K' F'
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.exists_eq_algebraMap_add_mul
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
theorem exists_eq_algebraMap_add_mul (V : Place K F) (hV : V.IsRational) {π :
  V.toValuationSubring}
    (hπ : Irreducible π) {f : F} (hf : f ∈ V.toValuationSubring) :
    ∃ a : K, ∃ g ∈ V.toValuationSubring, f = algebraMap K F a + (π : F) * g
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.algebraMap_algebraMap
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
theorem algebraMap_algebraMap (a : K) :
    algebraMap F F' (algebraMap K F a) = algebraMap K' F' (algebraMap K K' a)
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.exists_eq_algebraMap_add_mul_of_mem_spanV
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
theorem exists_eq_algebraMap_add_mul_of_mem_spanV (V : Place K F) (hV : V.IsRational)
    {π : V.toValuationSubring} (hπ : Irreducible π) {b : F'} (hb : b ∈ spanV K' V) :
    ∃ c : K', ∃ b₁ ∈ spanV K' V, b = algebraMap K' F' c + algebraMap F F' (π : F) * b₁
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.mem_of_mem_spanV
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
omit [Algebra K K'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F'] in
theorem mem_of_mem_spanV (V : Place K F) (v : Place K' F')
    (hv : v.toValuationSubring.comap (algebraMap F F') = V.toValuationSubring) {b : F'} (hb : b ∈
      spanV K' V) :
    b ∈ v.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.ord_algebraMap_pos
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
omit [Algebra K K'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F'] in
theorem ord_algebraMap_pos (V : Place K F) {π : V.toValuationSubring} (hπ : Irreducible π)
    (v : Place K' F') (hv : v.toValuationSubring.comap (algebraMap F F') = V.toValuationSubring) :
    0 < v.ord (algebraMap F F' (π : F))
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.unit_shape_mem
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
omit [Algebra K K'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F'] in
theorem unit_shape_mem (V : Place K F) {π : V.toValuationSubring} (hπ : Irreducible π)
    (v : Place K' F') (hv : v.toValuationSubring.comap (algebraMap F F') = V.toValuationSubring)
    (c : K') {b₁ : F'} (hb₁ : b₁ ∈ spanV K' V) :
    algebraMap K' F' c + algebraMap F F' (π : F) * b₁ ∈ v.toValuationSubring
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.residue_unit_shape_ne_zero
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
omit [Algebra K K'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F'] in
theorem residue_unit_shape_ne_zero (V : Place K F) {π : V.toValuationSubring} (hπ :
  Irreducible π)
    (v : Place K' F') (hv : v.toValuationSubring.comap (algebraMap F F') = V.toValuationSubring)
    {c : K'} (hc : c ≠ 0) {b₁ : F'} (hb₁ : b₁ ∈ spanV K' V)
    (hm : algebraMap K' F' c + algebraMap F F' (π : F) * b₁ ∈ v.toValuationSubring) :
    IsLocalRing.residue v.toValuationSubring ⟨algebraMap K' F' c + algebraMap F F' (π : F) * b₁,
      hm⟩ ≠ 0
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.ord_unit_shape_eq_zero
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
omit [Algebra K K'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F'] in
theorem ord_unit_shape_eq_zero (V : Place K F) {π : V.toValuationSubring} (hπ : Irreducible
  π)
    (v : Place K' F') (hv : v.toValuationSubring.comap (algebraMap F F') = V.toValuationSubring)
    {c : K'} (hc : c ≠ 0) {b₁ : F'} (hb₁ : b₁ ∈ spanV K' V) :
    v.ord (algebraMap K' F' c + algebraMap F F' (π : F) * b₁) = 0
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.unit_shape_ne_zero
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
omit [Algebra K K'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F'] in
theorem unit_shape_ne_zero (V : Place K F) {π : V.toValuationSubring} (hπ : Irreducible π)
    (v : Place K' F') (hv : v.toValuationSubring.comap (algebraMap F F') = V.toValuationSubring)
    {c : K'} (hc : c ≠ 0) {b₁ : F'} (hb₁ : b₁ ∈ spanV K' V) :
    algebraMap K' F' c + algebraMap F F' (π : F) * b₁ ≠ 0
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.exists_pow_mul_of_mem_spanV
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
theorem exists_pow_mul_of_mem_spanV (V : Place K F) (hV : V.IsRational) {π :
  V.toValuationSubring}
    (hπ : Irreducible π) (v : Place K' F') (hv : v.toValuationSubring.comap (algebraMap F F') =
      V.toValuationSubring)
    {b : F'} (hb : b ∈ spanV K' V) (hb0 : b ≠ 0) :
    ∃ n : ℕ, ∃ c : K', c ≠ 0 ∧ ∃ b₁ ∈ spanV K' V,
      b = algebraMap F F' (π : F) ^ n * (algebraMap K' F' c + algebraMap F F' (π : F) * b₁)
AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational.RationalPlaceDescent.ord_pow_mul_unit_shape
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
namespace RationalPlaceDescent
section Descent
variable {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K'
  F'] [Algebra K K']
  [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
variable (K') in
omit [Algebra K K'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F'] in
theorem ord_pow_mul_unit_shape (V : Place K F) {π : V.toValuationSubring} (hπ : Irreducible
  π)
    (v : Place K' F') (hv : v.toValuationSubring.comap (algebraMap F F') = V.toValuationSubring)
    (n : ℕ) {c : K'} (hc : c ≠ 0) {b₁ : F'} (hb₁ : b₁ ∈ spanV K' V) :
    v.ord (algebraMap F F' (π : F) ^ n * (algebraMap K' F' c + algebraMap F F' (π : F) * b₁))
      = n * v.ord (algebraMap F F' (π : F))
AlgebraicCurve.Place.eq_of_comap_toValuationSubring_eq_of_isRational
Source context 5 commands

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

section ProofImplementation
namespace AlgebraicCurves.Places.Proofs.Place_eq_of_comap_toValuationSubring_eq_of_isRational
noncomputable section
open AlgebraicCurve
open RationalPlaceDescent in
theorem _root_.AlgebraicCurve.Place.eq_of_comap_toValuationSubring_eq_of_isRational
    {K K' F F' : Type*} [Field K] [Field K'] [Field F] [Field F'] [Algebra K F] [Algebra K' F']
      [Algebra K K']
    [Algebra F F'] [Algebra K F'] [IsScalarTower K K' F'] [IsScalarTower K F F']
    (hgen : IntermediateField.adjoin K' (Set.range (algebraMap F F')) = ⊤)
    (V : Place K F) (hV : V.IsRational) (w w' : Place K' F')
    (hw : w.toValuationSubring.comap (algebraMap F F') = V.toValuationSubring)
    (hw' : w'.toValuationSubring.comap (algebraMap F F') = V.toValuationSubring) :
    w = w'