Module

LaurentKummerFiber.lean

Nyll.AnabelianGeometry.GeometricFundamentalGroup.LaurentKummerFiber
6 declarations indexed from sourceView source ↗

Roots as points of the Laurent Kummer fibre

The points of the actual Laurent Kummer algebra above a nonzero scalar are exactly the roots of its Kummer equation. Both directions are explicit ring homomorphisms and the inverse laws follow from the quotient universal property. No identification of a cover fibre with a root set is assumed.

Declarations

AnabelianGeometry.GeometricFundamentalGroup.laurentScalarEvaluation

Evaluation of the Laurent coordinate at a nonzero base-field scalar.

Source context 5 commands

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

noncomputable section
namespace AnabelianGeometry.GeometricFundamentalGroup
open Polynomial
universe u v
variable {K : Type u} [Field K] {L : Type v} [Field L] [Algebra K L]
def laurentScalarEvaluation (a : Kˣ) : LaurentPolynomial K →+* L
AnabelianGeometry.GeometricFundamentalGroup.LaurentKummerFiberHom

Points of the actual Kummer algebra above the specified Laurent point.

Source context 5 commands

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

noncomputable section
namespace AnabelianGeometry.GeometricFundamentalGroup
open Polynomial
universe u v
variable {K : Type u} [Field K] {L : Type v} [Field L] [Algebra K L]
def LaurentKummerFiberHom (n : ℕ) (a : Kˣ)
AnabelianGeometry.GeometricFundamentalGroup.laurentScalarEvaluation_coordinate

The Laurent coordinate specializes to the chosen base scalar.

Source context 5 commands

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

noncomputable section
namespace AnabelianGeometry.GeometricFundamentalGroup
open Polynomial
universe u v
variable {K : Type u} [Field K] {L : Type v} [Field L] [Algebra K L]
theorem laurentScalarEvaluation_coordinate (a : Kˣ) :
    laurentScalarEvaluation (L := L) a (LaurentPolynomial.T 1) =
      algebraMap K L (a : K)
AnabelianGeometry.GeometricFundamentalGroup.laurentKummerFiberHom_root_pow

The coordinate of a fibre point satisfies its Kummer equation.

Source context 5 commands

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

noncomputable section
namespace AnabelianGeometry.GeometricFundamentalGroup
open Polynomial
universe u v
variable {K : Type u} [Field K] {L : Type v} [Field L] [Algebra K L]
theorem laurentKummerFiberHom_root_pow (n : ℕ) (a : Kˣ)
    (f : LaurentKummerFiberHom (L := L) n a) :
    f.val (AdjoinRoot.root (X ^ n - C (LaurentPolynomial.T 1 : LaurentPolynomial K))) ^ n =
      algebraMap K L (a : K)
AnabelianGeometry.GeometricFundamentalGroup.laurentKummerFiberHomOfRoot

A root defines an actual point above the chosen Laurent scalar.

Source context 5 commands

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

noncomputable section
namespace AnabelianGeometry.GeometricFundamentalGroup
open Polynomial
universe u v
variable {K : Type u} [Field K] {L : Type v} [Field L] [Algebra K L]
def laurentKummerFiberHomOfRoot (n : ℕ) (a : Kˣ) (r : L)
    (hr : r ^ n = algebraMap K L (a : K)) : LaurentKummerFiberHom (L := L) n a
AnabelianGeometry.GeometricFundamentalGroup.laurentKummerFiberEquivRoots

The fibre-point and root constructions are inverse, for the actual Laurent Kummer cover algebra.

Source context 5 commands

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

noncomputable section
namespace AnabelianGeometry.GeometricFundamentalGroup
open Polynomial
universe u v
variable {K : Type u} [Field K] {L : Type v} [Field L] [Algebra K L]
def laurentKummerFiberEquivRoots (n : ℕ) (a : Kˣ) :
    LaurentKummerFiberHom (L := L) n a ≃ {r : L // r ^ n = algebraMap K L (a : K)} where
  toFun f := ⟨f.val (AdjoinRoot.root _), laurentKummerFiberHom_root_pow n a f⟩
  invFun r := laurentKummerFiberHomOfRoot (L := L) n a r.val r.property
  left_inv f := by
    apply Subtype.ext
    apply AdjoinRoot.ringHom_ext
    · simp only [laurentKummerFiberHomOfRoot, AdjoinRoot.lift_comp_of]
      exact f.property.symm
    · simp only [laurentKummerFiberHomOfRoot, AdjoinRoot.lift_root]
  right_inv r := by
    apply Subtype.ext
    simp only [laurentKummerFiberHomOfRoot, AdjoinRoot.lift_root]