LeanBridge Blueprint

1. Background🔗

This chapter lists the LMFDB definitions relating to background, migrated from the LaTeX blueprint. Each definition links back to its LMFDB knowl.

Definition1.1
uses 0used by 1✓L∃∀N

Arithmetic function. (LMFDB)

An arithmetic function is a complex-valued function whose domain is the positive integers.

Lean code for Definition1.1●1 definition
  • defdefined in Mathlib/NumberTheory/ArithmeticFunction/Defs.lean
    complete
    def ArithmeticFunction.{u_1} (R : Type u_1) [Zero R] : Type u_1
    def ArithmeticFunction.{u_1} (R : Type u_1)
      [Zero R] : Type u_1
    An arithmetic function is a function from `ℕ` that maps 0 to 0. In the literature, they are
    often instead defined as functions from `ℕ+`. Multiplication on `ArithmeticFunctions` is by
    Dirichlet convolution. 
Definition1.2
uses 0used by 1✓L∃∀N

Bernoulli numbers. (LMFDB)

The Bernoulli numbers are the rational numbers B_n that appear as coefficients of the formal power series

\frac{T}{e^T-1}=\sum_{n\ge 0}B_n\frac{T^n}{n!},

which has radius of convergence 2\pi.

Lean code for Definition1.2●1 definition
  • defdefined in Mathlib/NumberTheory/Bernoulli.lean
    complete
    def bernoulli (n : ℕ) : ℚ
    def bernoulli (n : ℕ) : ℚ
    The Bernoulli numbers are defined to be `bernoulli'` with a parity sign. 
Definition1.3
Statement uses 2
Statement dependency previews
Preview
Definition 1.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Divisor function. (LMFDB)

A divisor function is a multiplicative arithmetic function of the form

\sigma_{\tau}(n)=\sum_{d\mid n}d^\tau,

for some fixed \tau\in\mathbb{C}.

Depends on: Definition 1.1 Definition 1.4

Lean code for Definition1.3●4 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/ArithmeticFunction/DivisorFunction.lean
    complete
    def ArithmeticFunction.divisorFunction (τ : ℂ) : ArithmeticFunction ℂ
    def ArithmeticFunction.divisorFunction
      (τ : ℂ) : ArithmeticFunction ℂ
    The **divisor function** `σ_τ(n) = ∑_{d ∣ n} d ^ τ` (LMFDB `af.divisor_function`) for a complex
    exponent `τ`, as an arithmetic function with complex values. For a natural exponent `k` it is
    Mathlib's `ArithmeticFunction.sigma k` (`divisorFunction_natCast`). 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/ArithmeticFunction/DivisorFunction.lean
    complete
    theorem ArithmeticFunction.isMultiplicative_divisorFunction (τ : ℂ) :
      (ArithmeticFunction.divisorFunction τ).IsMultiplicative
    theorem ArithmeticFunction.isMultiplicative_divisorFunction
      (τ : ℂ) :
      (ArithmeticFunction.divisorFunction
          τ).IsMultiplicative
    The divisor function is multiplicative. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/ArithmeticFunction/DivisorFunction.lean
    complete
    theorem ArithmeticFunction.divisorFunction_natCast (n k : ℕ) :
      (ArithmeticFunction.divisorFunction ↑k) n =
        ↑((ArithmeticFunction.sigma k) n)
    theorem ArithmeticFunction.divisorFunction_natCast
      (n k : ℕ) :
      (ArithmeticFunction.divisorFunction ↑k)
          n =
        ↑((ArithmeticFunction.sigma k) n)
    For a natural exponent `k`, the divisor function is Mathlib's `σ k`. 
  • defdefined in Mathlib/NumberTheory/ArithmeticFunction/Misc.lean
    complete
    def ArithmeticFunction.sigma (k : ℕ) : ArithmeticFunction ℕ
    def ArithmeticFunction.sigma (k : ℕ) :
      ArithmeticFunction ℕ
    `σ k n` is the sum of the `k`th powers of the divisors of `n` 
Definition1.4
uses 0used by 1✓L∃∀N

Multiplicative arithmetic function. (LMFDB)

An arithmetic function f:\mathbb{Z}_{>0}\to \C is multiplicative if f(mn)=f(m)f(n) for all coprime integers m,n>0, and is not the zero-function (in particular, f(1)=1).

Lean code for Definition1.4●1 definition
  • defdefined in Mathlib/NumberTheory/ArithmeticFunction/Defs.lean
    complete
    def ArithmeticFunction.IsMultiplicative.{u_1} {R : Type u_1}
      [MonoidWithZero R] (f : ArithmeticFunction R) : Prop
    def ArithmeticFunction.IsMultiplicative.{u_1}
      {R : Type u_1} [MonoidWithZero R]
      (f : ArithmeticFunction R) : Prop
    Multiplicative functions 
Definition1.5
Statement uses 2
Statement dependency previews
Preview
Definition 1.28
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 20
Reverse dependency previews
Preview
Definition 1.8
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Abelian variety. (LMFDB)

An abelian variety defined over the field K is a smooth connected projective variety equipped with the structure of an algebraic group. The group law is automatically commutative.

An abelian variety of dimension 1 is the same as an elliptic curve.

Depends on: Definition 1.28 Definition 3.1

Lean code for Definition1.5●1 definition
  • structure(4 fields)defined in TauCeti/AlgebraicGeometry/AbelianVariety/Basic.lean
    complete
    structure TauCeti.AlgebraicGeometry.AbelianVariety.{u} (K : Type u) [Field K] :
      Type (u + 1)
    structure TauCeti.AlgebraicGeometry.AbelianVariety.{u}
      (K : Type u) [Field K] : Type (u + 1)
    An **abelian variety** over a field `K`: a proper geometrically integral group scheme over
    `Spec K`.
    
    The group-object structure lives on `toOver : Over (Spec (.of K))`; the underlying scheme is
    `toScheme = toOver.left`. The fields are the standing hypotheses of the theory: `grpObj` is the
    group law, `isProper` says the structure morphism to `Spec K` is proper, and
    `geometricallyIntegral` records the geometric hypothesis from which smoothness, geometric
    connectedness, absolute integrality, and commutativity are derived. 
    toOver : CategoryTheory.Over (AlgebraicGeometry.Spec ↧K)
    The underlying group scheme over `Spec K`. 
    grpObj : CategoryTheory.GrpObj self.toOver
    The group-object structure on `toOver`. 
    isProper : AlgebraicGeometry.IsProper self.toOver.hom
    The structure morphism to `Spec K` is proper. 
    geometricallyIntegral : AlgebraicGeometry.GeometricallyIntegral self.toOver.hom
    The structure morphism to `Spec K` is geometrically integral. 
Definition1.6
uses 1used by 1✓L∃∀N

Affine space. (LMFDB)

Affine space \mathbb{A}^n(K) of dimension n over a field K is the set K^n.

If P=(x_1,\dots,x_n) is a point in \mathbb{A}^n(K), the x_i are called the *affine coordinates* of P. Thus

\mathbb{A}^n(K) = \{(x_1,\dots,x_n)\mid x_1,\dots,x_n\in K\}.

Depends on: Definition 1.134

Lean code for Definition1.6●3 definitions
  • defdefined in Mathlib/AlgebraicGeometry/AffineSpace.lean
    complete
    def AlgebraicGeometry.AffineSpace.{u} (n : Type u)
      (S : AlgebraicGeometry.Scheme) : AlgebraicGeometry.Scheme
    def AlgebraicGeometry.AffineSpace.{u}
      (n : Type u)
      (S : AlgebraicGeometry.Scheme) :
      AlgebraicGeometry.Scheme
    `𝔸(n; S)` is the affine `n`-space over `S`.
    Note that `n : Type u` is an arbitrary index type (e.g. `ULift.{u} (Fin m)`). 
  • defdefined in Mathlib/AlgebraicGeometry/AffineSpace.lean
    complete
    def AlgebraicGeometry.AffineSpace.homOverEquiv.{u} {n : Type u}
      (S : AlgebraicGeometry.Scheme) {X : AlgebraicGeometry.Scheme}
      [X.Over S] :
      { f // AlgebraicGeometry.Scheme.Hom.IsOver f S } ≃
        (n → ↑(X.presheaf.obj (Opposite.op ⊤)))
    def AlgebraicGeometry.AffineSpace.homOverEquiv.{u}
      {n : Type u}
      (S : AlgebraicGeometry.Scheme)
      {X : AlgebraicGeometry.Scheme}
      [X.Over S] :
      { f //
          AlgebraicGeometry.Scheme.Hom.IsOver
            f S } ≃
        (n →
          ↑(X.presheaf.obj (Opposite.op ⊤)))
    `S`-morphisms into `Spec 𝔸(n; S)` are equivalent to the choice of `n` global sections. 
  • defdefined in Mathlib/AlgebraicGeometry/AffineSpace.lean
    complete
    def AlgebraicGeometry.AffineSpace.coord.{u} {n : Type u}
      (S : AlgebraicGeometry.Scheme) (i : n) :
      ↑((AlgebraicGeometry.AffineSpace n S).presheaf.obj (Opposite.op ⊤))
    def AlgebraicGeometry.AffineSpace.coord.{u}
      {n : Type u}
      (S : AlgebraicGeometry.Scheme) (i : n) :
      ↑((AlgebraicGeometry.AffineSpace n
                S).presheaf.obj
          (Opposite.op ⊤))
    The standard coordinates of `𝔸(n; S)`. 
Definition1.7
Statement uses 2
Statement dependency previews
Preview
Definition 1.28
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.21
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Base change. (LMFDB)

Let V be an algebraic variety defined over a field K. If L/K is a field extension, then any set of equations that define V over K can be used to define an algebraic variety over L, the base change of V from K to L (typically denoted V_L).

An algebraic variety over a field L is said to be a base change if it is the base change of an algebraic variety defined over a proper subfield of L, equivalently, if its base field is not a minimal field of definition.

Depends on: Definition 1.28 Definition 1.134

Lean code for Definition1.7●5 declarations
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/FieldOfDefinition.lean
    complete
    def AlgebraicGeometry.Scheme.IsBaseChangeFromSubfield.{u} (L : Type u)
      [Field L] (X : AlgebraicGeometry.Scheme)
      [X.Over (AlgebraicGeometry.Spec ↧L)] : Prop
    def AlgebraicGeometry.Scheme.IsBaseChangeFromSubfield.{u}
      (L : Type u) [Field L]
      (X : AlgebraicGeometry.Scheme)
      [X.Over (AlgebraicGeometry.Spec ↧L)] :
      Prop
    A variety `X` over a field `L` **is a base change** (LMFDB `ag.base_change`) if it is isomorphic
    over `L` to the base change of a variety defined over a proper subfield of `L`. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/FieldOfDefinition.lean
    complete
    theorem AlgebraicGeometry.Scheme.isBaseChangeFromSubfield_iff.{u} {L : Type u}
      [Field L] {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧L)]
      [AlgebraicGeometry.Scheme.IsVarietyOver L] :
      AlgebraicGeometry.Scheme.IsBaseChangeFromSubfield L X ↔
        ¬AlgebraicGeometry.Scheme.IsMinimalFieldOfDefinition L X ⊤
    theorem AlgebraicGeometry.Scheme.isBaseChangeFromSubfield_iff.{u}
      {L : Type u} [Field L]
      {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧L)]
      [AlgebraicGeometry.Scheme.IsVarietyOver
          L] :
      AlgebraicGeometry.Scheme.IsBaseChangeFromSubfield
          L X ↔
        ¬AlgebraicGeometry.Scheme.IsMinimalFieldOfDefinition
            L X ⊤
    A variety over `L` is a base change if and only if `L` is not a minimal field of definition of
    it. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/FieldOfDefinition.lean
    complete
    theorem AlgebraicGeometry.Scheme.isBaseChangeFromSubfield_pullback.{u}
      {L : Type u} [Field L] {k₀ : Subfield L}
      (X₀ : CategoryTheory.Over (AlgebraicGeometry.Spec ↧↥k₀))
      [AlgebraicGeometry.Scheme.IsVarietyOver ↥k₀] (hk₀ : k₀ ≠ ⊤) :
      AlgebraicGeometry.Scheme.IsBaseChangeFromSubfield L
        ((CategoryTheory.Over.pullback
                (AlgebraicGeometry.Spec.map
                  (CommRingCat.ofHom (algebraMap (↥k₀) L)))).obj
            X₀).left
    theorem AlgebraicGeometry.Scheme.isBaseChangeFromSubfield_pullback.{u}
      {L : Type u} [Field L] {k₀ : Subfield L}
      (X₀ :
        CategoryTheory.Over
          (AlgebraicGeometry.Spec ↧↥k₀))
      [AlgebraicGeometry.Scheme.IsVarietyOver
          ↥k₀]
      (hk₀ : k₀ ≠ ⊤) :
      AlgebraicGeometry.Scheme.IsBaseChangeFromSubfield
        L
        ((CategoryTheory.Over.pullback
                (AlgebraicGeometry.Spec.map
                  (CommRingCat.ofHom
                    (algebraMap (↥k₀)
                      L)))).obj
            X₀).left
    The base change to `L` of a variety over a proper subfield of `L` is a base change. 
  • defdefined in Mathlib/CategoryTheory/Comma/Over/Pullback.lean
    complete
    def CategoryTheory.Over.pullback.{v, u} {C : Type u}
      [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y)
      [CategoryTheory.Limits.HasPullbacksAlong f] :
      CategoryTheory.Functor (CategoryTheory.Over Y) (CategoryTheory.Over X)
    def CategoryTheory.Over.pullback.{v, u}
      {C : Type u}
      [CategoryTheory.Category.{v, u} C]
      {X Y : C} (f : X ⟶ Y)
      [CategoryTheory.Limits.HasPullbacksAlong
          f] :
      CategoryTheory.Functor
        (CategoryTheory.Over Y)
        (CategoryTheory.Over X)
    In a category with pullbacks, a morphism `f : X ⟶ Y` induces a functor `Over Y ⥤ Over X`,
    by pulling back a morphism along `f`. 
  • class(extends 4, 4 methods)defined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/Basic.lean
    complete
    class AlgebraicGeometry.Scheme.IsVarietyOver.{u} (K : Type u) [Field K]
      {X : AlgebraicGeometry.Scheme} [X.Over (AlgebraicGeometry.Spec ↧K)] :
      Prop
    class AlgebraicGeometry.Scheme.IsVarietyOver.{u}
      (K : Type u) [Field K]
      {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧K)] :
      Prop
    An **algebraic variety** over a field `K` (LMFDB `ag.variety`), as a scheme: a scheme over `K`
    that is geometrically integral, separated and of finite type (quasi-compact and locally of finite
    type) over `K`. 
    • AlgebraicGeometry.GeometricallyIntegral (X ↘ AlgebraicGeometry.Spec ↧K)
    • AlgebraicGeometry.IsSeparated (X ↘ AlgebraicGeometry.Spec ↧K)
    • AlgebraicGeometry.LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec ↧K)
    • AlgebraicGeometry.QuasiCompact (X ↘ AlgebraicGeometry.Spec ↧K)
    geometrically_isIntegral : AlgebraicGeometry.geometrically AlgebraicGeometry.IsIntegral (X ↘ AlgebraicGeometry.Spec ↧K)
    Inherited from
    1. AlgebraicGeometry.GeometricallyIntegral
    isClosedImmersion_diagonal : AlgebraicGeometry.IsClosedImmersion (CategoryTheory.Limits.pullback.diagonal (X ↘ AlgebraicGeometry.Spec ↧K))
    Inherited from
    1. AlgebraicGeometry.IsSeparated
    finiteType_appLE : ∀ {U : (AlgebraicGeometry.Spec ↧K).Opens},
      AlgebraicGeometry.IsAffineOpen U →
        ∀ {V : X.Opens},
          AlgebraicGeometry.IsAffineOpen V →
            ∀ (e : V ≤ (TopologicalSpace.Opens.map (X ↘ AlgebraicGeometry.Spec ↧K).base).obj U),
              (CommRingCat.Hom.hom (AlgebraicGeometry.Scheme.Hom.appLE (X ↘ AlgebraicGeometry.Spec ↧K) U V e)).FiniteType
    Inherited from
    1. AlgebraicGeometry.LocallyOfFiniteType
    isCompact_preimage : ∀ (U : Set ↥(AlgebraicGeometry.Spec ↧K)), IsOpen U → IsCompact U → IsCompact (⇑(X ↘ AlgebraicGeometry.Spec ↧K) ⁻¹' U)
    Inherited from
    1. AlgebraicGeometry.QuasiCompact
Definition1.8
Statement uses 2
Statement dependency previews
Preview
Definition 1.5
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Base field. (LMFDB)

The base field, of an algebraic variety is the field over which it is defined; it necessarily contains the coefficients of a set of defining equations for the variety, but it is not necessarily a minimal field of definition.

Depends on: Definition 1.5 Definition 1.21

Lean code for Definition1.8●1 definition
  • abbrevdefined in Mathlib/AlgebraicGeometry/Over.lean
    complete
    abbrev AlgebraicGeometry.Scheme.Over.{u} (X S : AlgebraicGeometry.Scheme) :
      Type u
    abbrev AlgebraicGeometry.Scheme.Over.{u}
      (X S : AlgebraicGeometry.Scheme) :
      Type u
    `X.Over S` is the typeclass containing the data of a structure morphism `X ↘ S : X ⟶ S`.
    
Definition1.9
Statement uses 8
Statement dependency previews
Preview
Definition 1.5
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Complex multiplication. (LMFDB)

A simple abelian variety of dimension g is said to have complex multiplication (CM) if its endomorphism algebra is a CM field of degree 2g, or equivalently, if its endomorphism ring is an order in a CM field of degree 2g.

Depends on: Definition 1.5 Definition 1.13 Definition 1.14 Definition 1.15 Definition 1.17 Definition 2.8 Definition 2.12 Definition 2.42

Lean code for Definition1.9●5 declarations
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/ComplexMultiplication.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.HasComplexMultiplication.{u}
      {K : Type u} [Field K]
      (A : TauCeti.AlgebraicGeometry.AbelianVariety K) : Prop
    def TauCeti.AlgebraicGeometry.AbelianVariety.HasComplexMultiplication.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Prop
    A simple abelian variety `A` of dimension `g` has **complex multiplication** (LMFDB
    `ag.complex_multiplication`), or is CM, if its endomorphism algebra `End(A) ⊗ ℚ` is a CM field of
    degree `2g`: it is isomorphic as a `ℚ`-algebra to a CM number field `F` with `[F : ℚ] = 2g`.
    
    Simplicity is simplicity over `K`, `IsSimple`, as the word "simple" of the LMFDB's text says, and
    the endomorphisms are those defined over `K`, as in LMFDB `ag.endomorphism_algebra`; the knowl's
    link on "simple" points to geometric simplicity, LMFDB `ag.geom_simple`, instead. 
  • abbrevdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/ComplexMultiplication.lean
    complete
    abbrev TauCeti.AlgebraicGeometry.AbelianVariety.EndAlgebra.{u} {K : Type u}
      [Field K] (A : TauCeti.AlgebraicGeometry.AbelianVariety K) : Type u
    abbrev TauCeti.AlgebraicGeometry.AbelianVariety.EndAlgebra.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Type u
    The **endomorphism algebra** `End(A) ⊗ ℚ` of an abelian variety `A`, a `ℚ`-algebra.
    
    It is written `ℚ ⊗[ℤ] End A`, with the rational numbers on the left, so that it is a `ℚ`-algebra
    through `Algebra.TensorProduct.leftAlgebra`. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/ComplexMultiplication.lean
    complete
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.hasComplexMultiplication_congr.{u}
      {K : Type u} [Field K]
      {A B : TauCeti.AlgebraicGeometry.AbelianVariety K} (e : A ≅ B) :
      A.HasComplexMultiplication ↔ B.HasComplexMultiplication
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.hasComplexMultiplication_congr.{u}
      {K : Type u} [Field K]
      {A B :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K}
      (e : A ≅ B) :
      A.HasComplexMultiplication ↔
        B.HasComplexMultiplication
    Having complex multiplication only depends on the isomorphism class of the abelian variety. 
  • defdefined in TauCeti/AlgebraicGeometry/AbelianVariety/End/Basic.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.End.{u} {K : Type u} [Field K]
      (A : TauCeti.AlgebraicGeometry.AbelianVariety K) : Type u
    def TauCeti.AlgebraicGeometry.AbelianVariety.End.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Type u
    The endomorphism ring of an abelian variety `A`: the endomorphisms of `A`, with addition the
    pointwise group law of `A` and multiplication composition.
    
    Since the pointwise group law on `A ⟶ A` is written multiplicatively (see
    `AbelianVariety.Hom.instCommGroup`) while a ring is written additively, this is the additive
    reindexing of the group `A ⟶ A`; use `AbelianVariety.End.toHom` and `AbelianVariety.End.ofHom` to
    pass between an element of the ring and the endomorphism it denotes. 
  • class(2 methods)defined in Mathlib/NumberTheory/NumberField/CMField.lean
    complete
    class NumberField.IsCMField.{u_1} (K : Type u_1) [Field K] [CharZero K] : Prop
    class NumberField.IsCMField.{u_1} (K : Type u_1)
      [Field K] [CharZero K] : Prop
    A field `K` is `CM` if `K` is a totally complex quadratic extension of its maximal
    real subfield `K⁺`.
    
    to_isTotallyComplex : NumberField.IsTotallyComplex K
    is_quadratic : Algebra.IsQuadraticExtension (↥(NumberField.maximalRealSubfield K)) K
Definition1.10
uses 1
Used by 5
Reverse dependency previews
Preview
Definition 1.12
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Algebraic curve. (LMFDB)

An algebraic curve is an algebraic variety of dimension 1.

Depends on: Definition 1.28

Lean code for Definition1.10●5 declarations
  • class(extends 5, 5 methods)defined in LeanBridge/ForMathlib/AlgebraicGeometry/Curve/Basic.lean
    complete
    class AlgebraicGeometry.Scheme.IsAlgebraicCurveOver.{u} (K : Type u) [Field K]
      {X : AlgebraicGeometry.Scheme} [X.Over (AlgebraicGeometry.Spec ↧K)] :
      Prop
    class AlgebraicGeometry.Scheme.IsAlgebraicCurveOver.{u}
      (K : Type u) [Field K]
      {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧K)] :
      Prop
    An **algebraic curve** over a field `K` (LMFDB `ag.curve`): an algebraic variety over `K`, that
    is a geometrically integral separated scheme of finite type over `K`, of dimension one. Unlike Tau
    Ceti's `AlgebraicGeometry.Scheme.IsCurveOver`, it need not be proper over `K`. 
    • AlgebraicGeometry.Scheme.IsVarietyOver K
    geometrically_isIntegral : AlgebraicGeometry.geometrically AlgebraicGeometry.IsIntegral (X ↘ AlgebraicGeometry.Spec ↧K)
    Inherited from
    1. AlgebraicGeometry.Scheme.IsVarietyOver
    2. AlgebraicGeometry.GeometricallyIntegral
    isClosedImmersion_diagonal : AlgebraicGeometry.IsClosedImmersion (CategoryTheory.Limits.pullback.diagonal (X ↘ AlgebraicGeometry.Spec ↧K))
    Inherited from
    1. AlgebraicGeometry.Scheme.IsVarietyOver
    2. AlgebraicGeometry.IsSeparated
    finiteType_appLE : ∀ {U : (AlgebraicGeometry.Spec ↧K).Opens},
      AlgebraicGeometry.IsAffineOpen U →
        ∀ {V : X.Opens},
          AlgebraicGeometry.IsAffineOpen V →
            ∀ (e : V ≤ (TopologicalSpace.Opens.map (X ↘ AlgebraicGeometry.Spec ↧K).base).obj U),
              (CommRingCat.Hom.hom (AlgebraicGeometry.Scheme.Hom.appLE (X ↘ AlgebraicGeometry.Spec ↧K) U V e)).FiniteType
    Inherited from
    1. AlgebraicGeometry.Scheme.IsVarietyOver
    2. AlgebraicGeometry.LocallyOfFiniteType
    isCompact_preimage : ∀ (U : Set ↥(AlgebraicGeometry.Spec ↧K)), IsOpen U → IsCompact U → IsCompact (⇑(X ↘ AlgebraicGeometry.Spec ↧K) ⁻¹' U)
    Inherited from
    1. AlgebraicGeometry.Scheme.IsVarietyOver
    2. AlgebraicGeometry.QuasiCompact
    topologicalKrullDim_eq_one : topologicalKrullDim ↥X = 1
    An algebraic curve has dimension one. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Curve/Basic.lean
    complete
    theorem AlgebraicGeometry.Scheme.isAlgebraicCurveOver_iff_isCurveOver_and_geometricallyIntegral.{u}
      {K : Type u} [Field K] {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧K)]
      [AlgebraicGeometry.IsProper (X ↘ AlgebraicGeometry.Spec ↧K)] :
      AlgebraicGeometry.Scheme.IsAlgebraicCurveOver K ↔
        AlgebraicGeometry.Scheme.IsCurveOver K ∧
          AlgebraicGeometry.GeometricallyIntegral
            (X ↘ AlgebraicGeometry.Spec ↧K)
    theorem AlgebraicGeometry.Scheme.isAlgebraicCurveOver_iff_isCurveOver_and_geometricallyIntegral.{u}
      {K : Type u} [Field K]
      {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧K)]
      [AlgebraicGeometry.IsProper
          (X ↘ AlgebraicGeometry.Spec ↧K)] :
      AlgebraicGeometry.Scheme.IsAlgebraicCurveOver
          K ↔
        AlgebraicGeometry.Scheme.IsCurveOver
            K ∧
          AlgebraicGeometry.GeometricallyIntegral
            (X ↘ AlgebraicGeometry.Spec ↧K)
    A proper scheme over `K` is an algebraic curve if and only if it is a curve in the sense of Tau
    Ceti, an integral proper scheme of dimension one over `K`, that is geometrically integral. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Curve/Basic.lean
    complete
    theorem AlgebraicGeometry.Scheme.IsAlgebraicCurveOver.isFunctionField.{u}
      {K : Type u} [Field K] {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧K)]
      [AlgebraicGeometry.Scheme.IsAlgebraicCurveOver K]
      [AlgebraicGeometry.IsIntegral X] :
      TauCeti.IsFunctionField K ↑X.functionField
    theorem AlgebraicGeometry.Scheme.IsAlgebraicCurveOver.isFunctionField.{u}
      {K : Type u} [Field K]
      {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧K)]
      [AlgebraicGeometry.Scheme.IsAlgebraicCurveOver
          K]
      [AlgebraicGeometry.IsIntegral X] :
      TauCeti.IsFunctionField K
        ↑X.functionField
    The function field of an algebraic curve over `K` is an algebraic function field of one
    variable over `K`. 
  • class(extends 4, 4 methods)defined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/Basic.lean
    complete
    class AlgebraicGeometry.Scheme.IsVarietyOver.{u} (K : Type u) [Field K]
      {X : AlgebraicGeometry.Scheme} [X.Over (AlgebraicGeometry.Spec ↧K)] :
      Prop
    class AlgebraicGeometry.Scheme.IsVarietyOver.{u}
      (K : Type u) [Field K]
      {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧K)] :
      Prop
    An **algebraic variety** over a field `K` (LMFDB `ag.variety`), as a scheme: a scheme over `K`
    that is geometrically integral, separated and of finite type (quasi-compact and locally of finite
    type) over `K`. 
    • AlgebraicGeometry.GeometricallyIntegral (X ↘ AlgebraicGeometry.Spec ↧K)
    • AlgebraicGeometry.IsSeparated (X ↘ AlgebraicGeometry.Spec ↧K)
    • AlgebraicGeometry.LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec ↧K)
    • AlgebraicGeometry.QuasiCompact (X ↘ AlgebraicGeometry.Spec ↧K)
    geometrically_isIntegral : AlgebraicGeometry.geometrically AlgebraicGeometry.IsIntegral (X ↘ AlgebraicGeometry.Spec ↧K)
    Inherited from
    1. AlgebraicGeometry.GeometricallyIntegral
    isClosedImmersion_diagonal : AlgebraicGeometry.IsClosedImmersion (CategoryTheory.Limits.pullback.diagonal (X ↘ AlgebraicGeometry.Spec ↧K))
    Inherited from
    1. AlgebraicGeometry.IsSeparated
    finiteType_appLE : ∀ {U : (AlgebraicGeometry.Spec ↧K).Opens},
      AlgebraicGeometry.IsAffineOpen U →
        ∀ {V : X.Opens},
          AlgebraicGeometry.IsAffineOpen V →
            ∀ (e : V ≤ (TopologicalSpace.Opens.map (X ↘ AlgebraicGeometry.Spec ↧K).base).obj U),
              (CommRingCat.Hom.hom (AlgebraicGeometry.Scheme.Hom.appLE (X ↘ AlgebraicGeometry.Spec ↧K) U V e)).FiniteType
    Inherited from
    1. AlgebraicGeometry.LocallyOfFiniteType
    isCompact_preimage : ∀ (U : Set ↥(AlgebraicGeometry.Spec ↧K)), IsOpen U → IsCompact U → IsCompact (⇑(X ↘ AlgebraicGeometry.Spec ↧K) ⁻¹' U)
    Inherited from
    1. AlgebraicGeometry.QuasiCompact
  • class(extends 5, 6 methods)defined in TauCeti/AlgebraicGeometry/Curves/Basic.lean
    complete
    class AlgebraicGeometry.Scheme.IsCurveOver.{u} {X : AlgebraicGeometry.Scheme}
      (k : Type u) [Field k] [X.Over (AlgebraicGeometry.Spec ↧k)] : Prop
    class AlgebraicGeometry.Scheme.IsCurveOver.{u}
      {X : AlgebraicGeometry.Scheme}
      (k : Type u) [Field k]
      [X.Over (AlgebraicGeometry.Spec ↧k)] :
      Prop
    A curve over a field is an integral, proper scheme of dimension one over that field. 
    • AlgebraicGeometry.IsIntegral X
    • AlgebraicGeometry.IsProper (X ↘ AlgebraicGeometry.Spec ↧k)
    nonempty : Nonempty ↥X
    Inherited from
    1. AlgebraicGeometry.IsIntegral
    component_integral : ∀ (U : X.Opens) [Nonempty ↥↑U], IsDomain ↑(X.presheaf.obj (Opposite.op U))
    Inherited from
    1. AlgebraicGeometry.IsIntegral
    isClosedImmersion_diagonal : AlgebraicGeometry.IsClosedImmersion (CategoryTheory.Limits.pullback.diagonal (X ↘ AlgebraicGeometry.Spec ↧k))
    Inherited from
    1. AlgebraicGeometry.IsProper
    2. AlgebraicGeometry.IsSeparated
    universally_isClosedMap : (AlgebraicGeometry.topologically @IsClosedMap).universally (X ↘ AlgebraicGeometry.Spec ↧k)
    Inherited from
    1. AlgebraicGeometry.IsProper
    2. AlgebraicGeometry.UniversallyClosed
    finiteType_appLE : ∀ {U : (AlgebraicGeometry.Spec ↧k).Opens},
      AlgebraicGeometry.IsAffineOpen U →
        ∀ {V : X.Opens},
          AlgebraicGeometry.IsAffineOpen V →
            ∀ (e : V ≤ (TopologicalSpace.Opens.map (X ↘ AlgebraicGeometry.Spec ↧k).base).obj U),
              (CommRingCat.Hom.hom (AlgebraicGeometry.Scheme.Hom.appLE (X ↘ AlgebraicGeometry.Spec ↧k) U V e)).FiniteType
    Inherited from
    1. AlgebraicGeometry.IsProper
    2. AlgebraicGeometry.LocallyOfFiniteType
    topologicalKrullDim_eq_one : topologicalKrullDim ↥X = 1
    The curve has dimension one. 
Definition1.11
uses 1
Used by 4
Reverse dependency previews
Preview
Definition 1.18
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Genus of a smooth curve. (LMFDB)

The genus of a smooth projective geometrically integral curve C defined over a field k is the dimension of the k-vector space of regular differentials H^0(C, \omega_C). When k=\C this coincides with the topological genus of the corresponding Riemann surface.

The quantity defined above is sometimes also called the algebraic genus or the geometric genus of C. Because of our assumption on the smoothness of C, it coincides with the arithmetic genus H^1(C,\mathcal{O}_C).

Depends on: Definition 1.25

Lean code for Definition1.11●3 definitions
  • class(extends 5, 6 methods)defined in TauCeti/AlgebraicGeometry/Curves/Basic.lean
    complete
    class AlgebraicGeometry.Scheme.IsCurveOver.{u} {X : AlgebraicGeometry.Scheme}
      (k : Type u) [Field k] [X.Over (AlgebraicGeometry.Spec ↧k)] : Prop
    class AlgebraicGeometry.Scheme.IsCurveOver.{u}
      {X : AlgebraicGeometry.Scheme}
      (k : Type u) [Field k]
      [X.Over (AlgebraicGeometry.Spec ↧k)] :
      Prop
    A curve over a field is an integral, proper scheme of dimension one over that field. 
    • AlgebraicGeometry.IsIntegral X
    • AlgebraicGeometry.IsProper (X ↘ AlgebraicGeometry.Spec ↧k)
    nonempty : Nonempty ↥X
    Inherited from
    1. AlgebraicGeometry.IsIntegral
    component_integral : ∀ (U : X.Opens) [Nonempty ↥↑U], IsDomain ↑(X.presheaf.obj (Opposite.op U))
    Inherited from
    1. AlgebraicGeometry.IsIntegral
    isClosedImmersion_diagonal : AlgebraicGeometry.IsClosedImmersion (CategoryTheory.Limits.pullback.diagonal (X ↘ AlgebraicGeometry.Spec ↧k))
    Inherited from
    1. AlgebraicGeometry.IsProper
    2. AlgebraicGeometry.IsSeparated
    universally_isClosedMap : (AlgebraicGeometry.topologically @IsClosedMap).universally (X ↘ AlgebraicGeometry.Spec ↧k)
    Inherited from
    1. AlgebraicGeometry.IsProper
    2. AlgebraicGeometry.UniversallyClosed
    finiteType_appLE : ∀ {U : (AlgebraicGeometry.Spec ↧k).Opens},
      AlgebraicGeometry.IsAffineOpen U →
        ∀ {V : X.Opens},
          AlgebraicGeometry.IsAffineOpen V →
            ∀ (e : V ≤ (TopologicalSpace.Opens.map (X ↘ AlgebraicGeometry.Spec ↧k).base).obj U),
              (CommRingCat.Hom.hom (AlgebraicGeometry.Scheme.Hom.appLE (X ↘ AlgebraicGeometry.Spec ↧k) U V e)).FiniteType
    Inherited from
    1. AlgebraicGeometry.IsProper
    2. AlgebraicGeometry.LocallyOfFiniteType
    topologicalKrullDim_eq_one : topologicalKrullDim ↥X = 1
    The curve has dimension one. 
  • defdefined in TauCeti/AlgebraicGeometry/Cohomology/Genus.lean
    complete
    def AlgebraicGeometry.Scheme.genus.{u} (k : Type u) [Field k]
      (X : AlgebraicGeometry.Scheme) [X.Over (AlgebraicGeometry.Spec ↧k)]
      [_fd :
        FiniteDimensional k
          (TauCeti.AlgebraicGeometry.Scheme.Modules.Cohomology
            (TauCeti.AlgebraicGeometry.InvertibleSheaf.trivial X).obj 1)] :
      ℕ
    def AlgebraicGeometry.Scheme.genus.{u}
      (k : Type u) [Field k]
      (X : AlgebraicGeometry.Scheme)
      [X.Over (AlgebraicGeometry.Spec ↧k)]
      [_fd :
        FiniteDimensional k
          (TauCeti.AlgebraicGeometry.Scheme.Modules.Cohomology
            (TauCeti.AlgebraicGeometry.InvertibleSheaf.trivial
                X).obj
            1)] :
      ℕ
    The genus `dim_k H¹(X, 𝒪_X)` of a scheme `X` over a field `k`, assuming this cohomology
    group is finite-dimensional. The finite-dimensionality instance `_fd` does not occur in the value
    — it guards the definition, so that `finrank` is never read as a genus `0` coming from its junk
    value on an infinite-dimensional space. 
  • defdefined in TauCeti/FieldTheory/FunctionField/RiemannRoch/Genus.lean
    complete
    def TauCeti.genus.{u_1, u_2} (k : Type u_1) (F : Type u_2) [Field k]
      [Field F] [Algebra k F] : ℕ
    def TauCeti.genus.{u_1, u_2} (k : Type u_1)
      (F : Type u_2) [Field k] [Field F]
      [Algebra k F] : ℕ
    **The genus of an algebraic function field** (Stichtenoth, Definition 1.4.15):
    `g = sup {deg D + 1 - ℓ(D)}` after truncation to natural numbers.  When `IsFunctionField k F`,
    `TauCeti.Divisor.bddAbove_range_degree_sub_dim` makes this supremum finite; without that hypothesis,
    an unbounded range gives the junk value `0`.
    
    The value is truncated to `ℕ`.  Over an exact constant field this loses nothing, because `D = 0`
    already gives `deg 0 + 1 - ℓ(0) = 0`; see `TauCeti.exists_degree_add_one_sub_dim_eq_genus`.  Over a
    non-exact constant field the truncation is a junk value: for `ℝ ⊆ ℂ(x)` the true maximum is `-1`,
    because every `ℝ`-degree and every `ℝ`-dimension is twice its `ℂ`-counterpart. 
Definition1.12
Statement uses 2
Statement dependency previews
Preview
Definition 1.10
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 5
Reverse dependency previews
Preview
Definition 1.61
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Smoothness of an algebraic curve. (LMFDB)

Let C be an algebraic curve over a perfect field k. Then C is called smooth if the extension of C to the algebraic closure of k is non-singular at all of its points.

Depends on: Definition 1.10 Definition 1.27

Lean code for Definition1.12●2 declarations
  • class(1 method)defined in Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean
    complete
    class AlgebraicGeometry.Smooth.{u} {X Y : AlgebraicGeometry.Scheme}
      (f : X ⟶ Y) : Prop
    class AlgebraicGeometry.Smooth.{u}
      {X Y : AlgebraicGeometry.Scheme}
      (f : X ⟶ Y) : Prop
    A morphism of schemes `f : X ⟶ Y` is smooth if for each affine `U ⊆ Y` and
    `V ⊆ f ⁻¹' U`, The induced map `Γ(Y, U) ⟶ Γ(X, V)` is smooth. 
    smooth_appLE : ∀ {U : Y.Opens},
      AlgebraicGeometry.IsAffineOpen U →
        ∀ {V : X.Opens},
          AlgebraicGeometry.IsAffineOpen V →
            ∀ (e : V ≤ (TopologicalSpace.Opens.map f.base).obj U),
              (CommRingCat.Hom.hom (AlgebraicGeometry.Scheme.Hom.appLE f U V e)).Smooth
  • theoremdefined in Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean
    complete
    theorem AlgebraicGeometry.Scheme.Hom.smoothLocus_eq_top_iff.{u}
      {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y}
      [AlgebraicGeometry.LocallyOfFinitePresentation f] :
      AlgebraicGeometry.Scheme.Hom.smoothLocus f = ⊤ ↔
        AlgebraicGeometry.Smooth f
    theorem AlgebraicGeometry.Scheme.Hom.smoothLocus_eq_top_iff.{u}
      {X Y : AlgebraicGeometry.Scheme}
      {f : X ⟶ Y}
      [AlgebraicGeometry.LocallyOfFinitePresentation
          f] :
      AlgebraicGeometry.Scheme.Hom.smoothLocus
            f =
          ⊤ ↔
        AlgebraicGeometry.Smooth f
Definition1.13
Statement uses 2
Statement dependency previews
Preview
Definition 1.19
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Definition 1.9
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Dimension of an algebraic variety. (LMFDB)

The dimension of an algebraic variety V is the maximal length d of a chain

V_0 \subset V_1 \subset \cdots \subset V_d

of distinct irreducible subvarieties of V.

Depends on: Definition 1.19 Definition 1.28

Lean code for Definition1.13●2 definitions
  • defdefined in Mathlib/Topology/KrullDimension.lean
    complete
    def topologicalKrullDim.{u_1} (T : Type u_1) [TopologicalSpace T] :
      WithBot ℕ∞
    def topologicalKrullDim.{u_1} (T : Type u_1)
      [TopologicalSpace T] : WithBot ℕ∞
    The Krull dimension of a topological space is the supremum of lengths of chains of
    closed irreducible sets.
    
  • structure(3 fields)defined in Mathlib/Topology/Sets/Closeds.lean
    complete
    structure TopologicalSpace.IrreducibleCloseds.{u_4} (α : Type u_4)
      [TopologicalSpace α] : Type u_4
    structure TopologicalSpace.IrreducibleCloseds.{u_4}
      (α : Type u_4) [TopologicalSpace α] :
      Type u_4
    The type of irreducible closed subsets of a topological space. 
    carrier : Set α
    the carrier set, i.e. the points in this set 
    isIrreducible' : IsIrreducible self.carrier
    isClosed' : IsClosed self.carrier
Definition1.14
Statement uses 2
Statement dependency previews
Preview
Definition 1.5
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Endomorphism algebra. (LMFDB)

The endomorphism algebra of an abelian variety A is the \Q-algebra \textrm{End}(A)\otimes\Q, where \textrm{End}(A) is the endomorphism ring of A.

Depends on: Definition 1.5 Definition 1.15

Lean code for Definition1.14●1 definition
  • defdefined in TauCeti/AlgebraicGeometry/AbelianVariety/End/Basic.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.End.{u} {K : Type u} [Field K]
      (A : TauCeti.AlgebraicGeometry.AbelianVariety K) : Type u
    def TauCeti.AlgebraicGeometry.AbelianVariety.End.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Type u
    The endomorphism ring of an abelian variety `A`: the endomorphisms of `A`, with addition the
    pointwise group law of `A` and multiplication composition.
    
    Since the pointwise group law on `A ⟶ A` is written multiplicatively (see
    `AbelianVariety.Hom.instCommGroup`) while a ring is written additively, this is the additive
    reindexing of the group `A ⟶ A`; use `AbelianVariety.End.toHom` and `AbelianVariety.End.ofHom` to
    pass between an element of the ring and the endomorphism it denotes. 
Definition1.15
uses 1
Used by 6
Reverse dependency previews
Preview
Definition 1.9
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Endomorphism ring. (LMFDB)

An endomorphism of an abelian variety A over a field k is a homomorphism \varphi \colon A \to A defined over k. The set of endomorphisms of an abelian variety A can be given the structure of a ring in which addition is defined pointwise (using the group operation of A) and multiplication is composition; this ring is called the endomorphism ring of A, denoted \textrm{End}(A).

For endomorphisms defined over an extension of k, we instead speak about the geometric endomorphism ring.

Depends on: Definition 1.5

Lean code for Definition1.15●1 definition
  • defdefined in TauCeti/AlgebraicGeometry/AbelianVariety/End/Basic.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.End.{u} {K : Type u} [Field K]
      (A : TauCeti.AlgebraicGeometry.AbelianVariety K) : Type u
    def TauCeti.AlgebraicGeometry.AbelianVariety.End.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Type u
    The endomorphism ring of an abelian variety `A`: the endomorphisms of `A`, with addition the
    pointwise group law of `A` and multiplication composition.
    
    Since the pointwise group law on `A ⟶ A` is written multiplicatively (see
    `AbelianVariety.Hom.instCommGroup`) while a ring is written additively, this is the additive
    reindexing of the group `A ⟶ A`; use `AbelianVariety.End.toHom` and `AbelianVariety.End.ofHom` to
    pass between an element of the ring and the endomorphism it denotes. 
Definition1.16
uses 1used by 1✓L∃∀N

Geometric endomorphism ring. (LMFDB)

For an abelian variety A over a field F, the geometric endomorphism ring of A is \End(A_{\overline{F}}), the endomorphism ring of the base change of A to an algebraic closure \overline{F} of F.

Depends on: Definition 1.15

Lean code for Definition1.16●3 definitions
  • defdefined in TauCeti/AlgebraicGeometry/AbelianVariety/End/Basic.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.End.{u} {K : Type u} [Field K]
      (A : TauCeti.AlgebraicGeometry.AbelianVariety K) : Type u
    def TauCeti.AlgebraicGeometry.AbelianVariety.End.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Type u
    The endomorphism ring of an abelian variety `A`: the endomorphisms of `A`, with addition the
    pointwise group law of `A` and multiplication composition.
    
    Since the pointwise group law on `A ⟶ A` is written multiplicatively (see
    `AbelianVariety.Hom.instCommGroup`) while a ring is written additively, this is the additive
    reindexing of the group `A ⟶ A`; use `AbelianVariety.End.toHom` and `AbelianVariety.End.ofHom` to
    pass between an element of the ring and the endomorphism it denotes. 
  • defdefined in TauCeti/AlgebraicGeometry/AbelianVariety/End/BaseChange.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.End.baseChange.{u} {K : Type u}
      [Field K] (A : TauCeti.AlgebraicGeometry.AbelianVariety K)
      (L : Type u) [Field L] [Algebra K L] : A.End →+* (A.baseChange L).End
    def TauCeti.AlgebraicGeometry.AbelianVariety.End.baseChange.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K)
      (L : Type u) [Field L] [Algebra K L] :
      A.End →+* (A.baseChange L).End
    Extension of the base field along `K → L`, as a ring homomorphism between endomorphism rings.
    
    Addition in an endomorphism ring is the pointwise group law of the abelian variety and
    multiplication is composition, so additivity is `AbelianVariety.Hom.baseChange_mul` and
    multiplicativity is `AbelianVariety.Hom.baseChange_comp` (composition being taken in the reversed
    order in which `AbelianVariety.End` multiplies).
    
    The action is characterized by `AbelianVariety.End.toHom_baseChange` and
    `AbelianVariety.End.baseChange_ofHom`, so the implementation is not exposed. 
  • defdefined in TauCeti/AlgebraicGeometry/AbelianVariety/Basic.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.baseChange.{u} {K : Type u}
      [Field K] (A : TauCeti.AlgebraicGeometry.AbelianVariety K)
      (L : Type u) [Field L] [Algebra K L] :
      TauCeti.AlgebraicGeometry.AbelianVariety L
    def TauCeti.AlgebraicGeometry.AbelianVariety.baseChange.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K)
      (L : Type u) [Field L] [Algebra K L] :
      TauCeti.AlgebraicGeometry.AbelianVariety
        L
    The base change of an abelian variety along a field extension `K → L`, obtained by pulling
    back the group scheme along `Spec L → Spec K`.
    
    Properness and geometric integrality are stable under base change, and the monoidal pullback
    functor carries the group-object structure (`Functor.grpObjObj`), so the result is again an
    abelian variety. This realizes the roadmap's base-change compatibility of the Jacobian at the
    level of abelian varieties. 
Definition1.17
Statement uses 2
Statement dependency previews
Preview
Definition 1.5
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Geometrically simple. (LMFDB)

An abelian variety over a field k is geometrically (or absolutely) simple if it is simple when viewed as a variety over \bar k.

Depends on: Definition 1.5 Definition 1.26

Lean code for Definition1.17●4 declarations
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Simple.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsGeometricallySimple.{u}
      {K : Type u} [Field K]
      (A : TauCeti.AlgebraicGeometry.AbelianVariety K) : Prop
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsGeometricallySimple.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Prop
    An abelian variety `A` over `K` is **geometrically simple** (LMFDB `ag.geom_simple`), or
    absolutely simple, if its base change to the algebraic closure of `K` is simple. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Simple.lean
    complete
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.isGeometricallySimple_congr.{u}
      {K : Type u} [Field K]
      {A B : TauCeti.AlgebraicGeometry.AbelianVariety K} (e : A ≅ B) :
      A.IsGeometricallySimple ↔ B.IsGeometricallySimple
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.isGeometricallySimple_congr.{u}
      {K : Type u} [Field K]
      {A B :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K}
      (e : A ≅ B) :
      A.IsGeometricallySimple ↔
        B.IsGeometricallySimple
    Geometric simplicity only depends on the isomorphism class of the abelian variety. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Simple.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsSimple.{u} {K : Type u}
      [Field K] (A : TauCeti.AlgebraicGeometry.AbelianVariety K) : Prop
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsSimple.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Prop
    An abelian variety `A` over `K` is **simple** (LMFDB `ag.simple`, `av.simple`) if it is nonzero
    and not isogenous to a product `B × C` of abelian varieties of lower dimension.
    
    The LMFDB allows products of any number of factors of lower dimension. Two factors suffice:
    isogenous abelian varieties have the same dimension, dimension is additive in products, and a
    factor of dimension zero is trivial, so a product of more factors regroups into two. Being
    isogenous is symmetric, so the direction of the isogeny `A ⟶ B × C` does not matter either. These
    facts are not formalised here. 
  • defdefined in TauCeti/AlgebraicGeometry/AbelianVariety/Basic.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.baseChange.{u} {K : Type u}
      [Field K] (A : TauCeti.AlgebraicGeometry.AbelianVariety K)
      (L : Type u) [Field L] [Algebra K L] :
      TauCeti.AlgebraicGeometry.AbelianVariety L
    def TauCeti.AlgebraicGeometry.AbelianVariety.baseChange.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K)
      (L : Type u) [Field L] [Algebra K L] :
      TauCeti.AlgebraicGeometry.AbelianVariety
        L
    The base change of an abelian variety along a field extension `K → L`, obtained by pulling
    back the group scheme along `Spec L → Spec K`.
    
    Properness and geometric integrality are stable under base change, and the monoidal pullback
    functor carries the group-object structure (`Functor.grpObjObj`), so the result is again an
    abelian variety. This realizes the roadmap's base-change compatibility of the Jacobian at the
    level of abelian varieties. 
Definition1.18
Statement uses 2
Statement dependency previews
Preview
Definition 1.10
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.59
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
XL∃∀N

Hyperelliptic curve. (LMFDB)

A hyperelliptic curve X over a field k is a smooth projective algebraic curve of genus g\ge 2 that admits a 2-to-1 map X\to \mathbb{P}^1 defined over the algebraic closure \bar k.

If X is a hyperelliptic curve over k, then the canonical map X \to \mathbb{P}^{g-1} is a 2-to-1 map onto a smooth genus 0 curve Y. The curve Y is isomorphic to \mathbb{P}^1 if and only if Y has a k-rational point.

If X admits a 2-to-1 map to \mathbb{P}^1 that is defined over k, then X has a Weierstrass model of the form y^2+h(x)y=f(x); when the characteristic of k is not 2 one can complete the square to put this model in the form y^2=f(x).

In general, there is always a model for X in \mathbb{P}^3 of the form

h(x,y,z)=0\qquad w^2=f(x,y,z)

where h(x,y,z) is a homogeneous polynomial of degree 2 (a conic) and f(x,y,z) is a homogeneous polynomial of degree g+1.

Depends on: Definition 1.10 Definition 1.11

Definition1.19
uses 1used by 1✓L∃∀N

Irreducible variety. (LMFDB)

A variety defined over a field F is irreducible if it is nonempty and cannot be decomposed as the union of two strictly smaller varieties over F. It is geometrically irreducible if it remains irreducible when seen as a variety over the algebraic closure of F.

Depends on: Definition 1.28

Lean code for Definition1.19●2 definitions
  • class(extends 1, 2 methods)defined in Mathlib/Topology/Irreducible.lean
    complete
    class IrreducibleSpace.{u_3} (X : Type u_3) [TopologicalSpace X] : Prop
    class IrreducibleSpace.{u_3} (X : Type u_3)
      [TopologicalSpace X] : Prop
    An irreducible space is one that is nonempty
    and where there is no non-trivial pair of disjoint opens. 
    • PreirreducibleSpace X
    isPreirreducible_univ : IsPreirreducible Set.univ
    Inherited from
    1. PreirreducibleSpace
    toNonempty : Nonempty X
  • class(1 method)defined in Mathlib/AlgebraicGeometry/Geometrically/Irreducible.lean
    complete
    class AlgebraicGeometry.GeometricallyIrreducible.{u_1}
      {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) : Prop
    class AlgebraicGeometry.GeometricallyIrreducible.{u_1}
      {X Y : AlgebraicGeometry.Scheme}
      (f : X ⟶ Y) : Prop
    We say that morphism `f : X ⟶ Y` is geometrically irreducible if for all `Spec K ⟶ Y` with `K`
    a field, `X ×[Y] Spec K` is irreducible. 
    geometrically_irreducibleSpace : AlgebraicGeometry.geometrically (fun x => IrreducibleSpace ↥x) f
Definition1.20
uses 1used by 1XL∃∀N

Jacobian of a curve. (LMFDB)

The Jacobian of a (smooth, projective, geometrically integral) curve X of genus g over a field k is a g-dimensional principally polarized abelian variety J that is canonically associated to X.

If X has a k-rational point, then J(k) is isomorphic to the group of degree zero divisors on X modulo linear equivalence. A choice of rational point on X determines a morphism X \to J called an Abel-Jacobi map; it is an embedding if and only if g \ge 1, and an isomorphism if and only if g=1.

The Torelli theorem states that if X and Y are curves whose Jacobians are isomorphic as *principally polarized* abelian varieties, then X and Y are isomorphic. It is possible, however, for non-isomorphic curves to have Jacobians that are isomorphic as unpolarized abelian varieties.

Depends on: Definition 1.5

Definition1.21
Statement uses 4
Statement dependency previews
Preview
Definition 1.7
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Minimal field of definition. (LMFDB)

Let V/k be an algebraic variety defined over a field k and let S be the set of subfields k_0\subseteq k for which there exists an algebraic variety V_0/k_0 whose base change to k is isomorphic to V.

Any field k_0\in S that contains no other elements of S is a minimal field of definition for V.

In general, an algebraic variety may have more than one minimal field of definition; this does not occur for elliptic curves but it does occur for curves of genus 2.

Depends on: Definition 1.7 Definition 1.11 Definition 1.28 Definition 1.134

Lean code for Definition1.21●5 declarations
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/FieldOfDefinition.lean
    complete
    def AlgebraicGeometry.Scheme.fieldsOfDefinition.{u} (L : Type u) [Field L]
      (X : AlgebraicGeometry.Scheme) [X.Over (AlgebraicGeometry.Spec ↧L)] :
      Set (Subfield L)
    def AlgebraicGeometry.Scheme.fieldsOfDefinition.{u}
      (L : Type u) [Field L]
      (X : AlgebraicGeometry.Scheme)
      [X.Over (AlgebraicGeometry.Spec ↧L)] :
      Set (Subfield L)
    The **fields of definition** of a variety `X` over a field `L` (LMFDB `ag.minimal_field`): the
    subfields `k₀ ⊆ L` for which there is a variety `X₀` over `k₀` whose base change `X₀ ×_{k₀} L` to
    `L` is isomorphic to `X` over `L`. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/FieldOfDefinition.lean
    complete
    def AlgebraicGeometry.Scheme.IsMinimalFieldOfDefinition.{u} (L : Type u)
      [Field L] (X : AlgebraicGeometry.Scheme)
      [X.Over (AlgebraicGeometry.Spec ↧L)] (k₀ : Subfield L) : Prop
    def AlgebraicGeometry.Scheme.IsMinimalFieldOfDefinition.{u}
      (L : Type u) [Field L]
      (X : AlgebraicGeometry.Scheme)
      [X.Over (AlgebraicGeometry.Spec ↧L)]
      (k₀ : Subfield L) : Prop
    A subfield `k₀ ⊆ L` is a **minimal field of definition** (LMFDB `ag.minimal_field`) of a variety
    `X` over `L` if it is a field of definition of `X` that contains no other field of definition of
    `X`. A variety may have several minimal fields of definition. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/FieldOfDefinition.lean
    complete
    theorem AlgebraicGeometry.Scheme.top_mem_fieldsOfDefinition.{u} {L : Type u}
      [Field L] {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧L)]
      [AlgebraicGeometry.Scheme.IsVarietyOver L] :
      ⊤ ∈ AlgebraicGeometry.Scheme.fieldsOfDefinition L X
    theorem AlgebraicGeometry.Scheme.top_mem_fieldsOfDefinition.{u}
      {L : Type u} [Field L]
      {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧L)]
      [AlgebraicGeometry.Scheme.IsVarietyOver
          L] :
      ⊤ ∈
        AlgebraicGeometry.Scheme.fieldsOfDefinition
          L X
    A variety over `L` is defined over `L`: `L` is a field of definition of it. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/FieldOfDefinition.lean
    complete
    theorem AlgebraicGeometry.Scheme.isUpperSet_fieldsOfDefinition.{u} {L : Type u}
      [Field L] {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧L)] :
      IsUpperSet (AlgebraicGeometry.Scheme.fieldsOfDefinition L X)
    theorem AlgebraicGeometry.Scheme.isUpperSet_fieldsOfDefinition.{u}
      {L : Type u} [Field L]
      {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧L)] :
      IsUpperSet
        (AlgebraicGeometry.Scheme.fieldsOfDefinition
          L X)
    The fields of definition of a variety form an upper set: a subfield of `L` containing a field
    of definition is a field of definition. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/FieldOfDefinition.lean
    complete
    theorem AlgebraicGeometry.Scheme.mem_fieldsOfDefinition_pullback.{u}
      {L : Type u} [Field L] {k₀ : Subfield L}
      (X₀ : CategoryTheory.Over (AlgebraicGeometry.Spec ↧↥k₀))
      [AlgebraicGeometry.Scheme.IsVarietyOver ↥k₀] :
      k₀ ∈
        AlgebraicGeometry.Scheme.fieldsOfDefinition L
          ((CategoryTheory.Over.pullback
                  (AlgebraicGeometry.Spec.map
                    (CommRingCat.ofHom (algebraMap (↥k₀) L)))).obj
              X₀).left
    theorem AlgebraicGeometry.Scheme.mem_fieldsOfDefinition_pullback.{u}
      {L : Type u} [Field L] {k₀ : Subfield L}
      (X₀ :
        CategoryTheory.Over
          (AlgebraicGeometry.Spec ↧↥k₀))
      [AlgebraicGeometry.Scheme.IsVarietyOver
          ↥k₀] :
      k₀ ∈
        AlgebraicGeometry.Scheme.fieldsOfDefinition
          L
          ((CategoryTheory.Over.pullback
                  (AlgebraicGeometry.Spec.map
                    (CommRingCat.ofHom
                      (algebraMap (↥k₀)
                        L)))).obj
              X₀).left
    A subfield `k₀ ⊆ L` is a field of definition of the base change to `L` of any variety over
    `k₀`. 
Definition1.22
Statement uses 2
Statement dependency previews
Preview
Definition 1.5
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 3.38
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Mordell-Weil group of an abelian variety. (LMFDB)

The Mordell-Weil group of an abelian variety A over a number field K is its group of K-rational points A(K).

Weil, building on Mordell's theorem for elliptic curves over \Q, proved that the abelian group A(K) is finitely generated. Thus

A(K)\simeq \Z^r \oplus T,

where r is a nonnegative integer called the Mordell-Weil rank of A, and T is a finite abelian group called the torsion subgroup.

The torsion subgroup T is the product of at most 2g cyclic groups, where g is the dimension of A.

Depends on: Definition 1.5 Definition 1.13

Lean code for Definition1.22●1 definition
  • structure(4 fields)defined in TauCeti/AlgebraicGeometry/AbelianVariety/Basic.lean
    complete
    structure TauCeti.AlgebraicGeometry.AbelianVariety.{u} (K : Type u) [Field K] :
      Type (u + 1)
    structure TauCeti.AlgebraicGeometry.AbelianVariety.{u}
      (K : Type u) [Field K] : Type (u + 1)
    An **abelian variety** over a field `K`: a proper geometrically integral group scheme over
    `Spec K`.
    
    The group-object structure lives on `toOver : Over (Spec (.of K))`; the underlying scheme is
    `toScheme = toOver.left`. The fields are the standing hypotheses of the theory: `grpObj` is the
    group law, `isProper` says the structure morphism to `Spec K` is proper, and
    `geometricallyIntegral` records the geometric hypothesis from which smoothness, geometric
    connectedness, absolute integrality, and commutativity are derived. 
    toOver : CategoryTheory.Over (AlgebraicGeometry.Spec ↧K)
    The underlying group scheme over `Spec K`. 
    grpObj : CategoryTheory.GrpObj self.toOver
    The group-object structure on `toOver`. 
    isProper : AlgebraicGeometry.IsProper self.toOver.hom
    The structure morphism to `Spec K` is proper. 
    geometricallyIntegral : AlgebraicGeometry.GeometricallyIntegral self.toOver.hom
    The structure morphism to `Spec K` is geometrically integral. 
Definition1.23
uses 1used by 1✓L∃∀N

Projective space. (LMFDB)

Projective space \mathbb{P}^n(K) of dimension n over a field K is the set (K^{n+1}\setminus\{0\})/{}\sim{}, where

(x_0,x_1,\dots,x_n) \sim (y_0,y_1,\dots,y_n) \iff x_0=\lambda y_0, \dots, x_n=\lambda y_n\quad\text{for some}\ \lambda\in K^*.

This is also known as the projectivization of the vector space K^{n+1}.

The equivalence class of (x_0,x_1,\dots,x_n) in \mathbb{P}^n(K) is denoted by (x_0:x_1:\dots:x_n), and the x_i are called homogeneous coordinates. Thus

\mathbb{P}^n(K) = \{(x_0:\dots:x_n)\mid x_0,\dots,x_n\in K,\ \text{not all zero}\}.

Depends on: Definition 1.134

Lean code for Definition1.23●1 definition
  • defdefined in Mathlib/LinearAlgebra/Projectivization/Basic.lean
    complete
    def Projectivization.{u_1, u_2} (K : Type u_1) (V : Type u_2)
      [DivisionRing K] [AddCommGroup V] [Module K V] : Type u_2
    def Projectivization.{u_1, u_2} (K : Type u_1)
      (V : Type u_2) [DivisionRing K]
      [AddCommGroup V] [Module K V] : Type u_2
    The projectivization of the `K`-vector space `V`.
    The notation `ℙ K V` is preferred. 
Definition1.24
Statement uses 3
Statement dependency previews
Preview
Definition 1.10
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1XL∃∀N

Quotient curve. (LMFDB)

Let X be an algebraic curve and let H be a finite subgroup of its automorphism group.

The quotient curve X/H is the algebraic curve obtained by identifying points of X that lie in the same H-orbit (equations defining X/H as an algebraic variety of dimension one can be constructed from the equations defining X and the automorphisms in H).

The natural projection X\to X/H that sends each point on X to its H-orbit is a surjective morphism

Depends on: Definition 1.10 Definition 1.28 Definition 1.57

Definition1.25
uses 0used by 1✓L∃∀N

Riemann surface. (LMFDB)

A Riemann surface is a connected complex manifold of dimension one. Compact Riemann surfaces can be identified with smooth projective curves over \C.

Lean code for Definition1.25●4 definitions
  • class(extends 1, 1 method)defined in Mathlib/Geometry/Manifold/IsManifold/Basic.lean
    complete
    class IsManifold.{u_1, u_2, u_3, u_4} {𝕜 : Type u_1}
      [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E]
      [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H]
      (I : ModelWithCorners 𝕜 E H) (n : WithTop ℕ∞) (M : Type u_4)
      [TopologicalSpace M] [ChartedSpace H M] : Prop
    class IsManifold.{u_1, u_2, u_3, u_4}
      {𝕜 : Type u_1}
      [NontriviallyNormedField 𝕜]
      {E : Type u_2} [NormedAddCommGroup E]
      [NormedSpace 𝕜 E] {H : Type u_3}
      [TopologicalSpace H]
      (I : ModelWithCorners 𝕜 E H)
      (n : WithTop ℕ∞) (M : Type u_4)
      [TopologicalSpace M]
      [ChartedSpace H M] : Prop
    Typeclass defining manifolds with respect to a model with corners, over a
    field `𝕜`. This definition includes the model with corners `I` (which might allow boundary, corners,
    or not, so this class covers both manifolds with boundary and manifolds without boundary), and
    a smoothness parameter `n : ℕ∞ω` (where `n = 0` means topological manifold, `n = ∞` means
    smooth manifold and `n = ω` means analytic manifold). 
    • HasGroupoid M (contDiffGroupoid n I)
    compatible : ∀ {e e' : OpenPartialHomeomorph M H}, e ∈ atlas H M → e' ∈ atlas H M → e.symm.trans e' ∈ contDiffGroupoid n I
    Inherited from
    1. HasGroupoid
  • class(4 methods)defined in Mathlib/Geometry/Manifold/ChartedSpace.lean
    complete
    class ChartedSpace.{u_4, u_5} (H : Type u_4) [TopologicalSpace H]
      (M : Type u_5) [TopologicalSpace M] : Type (max u_4 u_5)
    class ChartedSpace.{u_4, u_5} (H : Type u_4)
      [TopologicalSpace H] (M : Type u_5)
      [TopologicalSpace M] :
      Type (max u_4 u_5)
    A charted space is a topological space endowed with an atlas, i.e., a set of local
    homeomorphisms taking values in a model space `H`, called charts, such that the domains of the
    charts cover the whole space. We express the covering property by choosing for each `x` a member
    `chartAt x` of the atlas containing `x` in its source: in the smooth case, this is convenient to
    construct the tangent bundle in an efficient way.
    The model space is written as an explicit parameter as there can be several model spaces for a
    given topological space. For instance, a complex manifold (modelled over `ℂ^n`) will also be seen
    sometimes as a real manifold over `ℝ^(2n)`.
    
    atlas : Set (OpenPartialHomeomorph M H)
    The atlas of charts in the `ChartedSpace`. 
    chartAt : M → OpenPartialHomeomorph M H
    The preferred chart at each point in the charted space. 
    mem_chart_source : ∀ (x : M), x ∈ (ChartedSpace.chartAt x).source
    chart_mem_atlas : ∀ (x : M), ChartedSpace.chartAt x ∈ ChartedSpace.atlas
  • class(extends 1, 2 methods)defined in Mathlib/Topology/Connected/Basic.lean
    complete
    class ConnectedSpace.{u} (α : Type u) [TopologicalSpace α] : Prop
    class ConnectedSpace.{u} (α : Type u)
      [TopologicalSpace α] : Prop
    A connected space is a nonempty one where there is no non-trivial open partition. 
    • PreconnectedSpace α
    isPreconnected_univ : IsPreconnected Set.univ
    Inherited from
    1. PreconnectedSpace
    toNonempty : Nonempty α
    A connected space is nonempty. 
  • class(1 method)defined in Mathlib/Topology/Separation/Hausdorff.lean
    complete
    class T2Space.{u} (X : Type u) [TopologicalSpace X] : Prop
    class T2Space.{u} (X : Type u)
      [TopologicalSpace X] : Prop
    A T₂ space, also known as a Hausdorff space, is one in which for every
    `x ≠ y` there exists disjoint open sets around `x` and `y`. This is
    the most widely used of the separation axioms. 
    t2 : Pairwise fun x y => ∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ Disjoint u v
    Every two points in a Hausdorff space admit disjoint open neighbourhoods. 
Definition1.26
uses 1used by 1✓L∃∀N

Simple. (LMFDB)

An abelian variety is simple if it is nonzero and not isogenous to a product of abelian varieties of lower dimension.

Depends on: Definition 1.5

Lean code for Definition1.26●5 declarations
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Simple.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsSimple.{u} {K : Type u}
      [Field K] (A : TauCeti.AlgebraicGeometry.AbelianVariety K) : Prop
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsSimple.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Prop
    An abelian variety `A` over `K` is **simple** (LMFDB `ag.simple`, `av.simple`) if it is nonzero
    and not isogenous to a product `B × C` of abelian varieties of lower dimension.
    
    The LMFDB allows products of any number of factors of lower dimension. Two factors suffice:
    isogenous abelian varieties have the same dimension, dimension is additive in products, and a
    factor of dimension zero is trivial, so a product of more factors regroups into two. Being
    isogenous is symmetric, so the direction of the isogeny `A ⟶ B × C` does not matter either. These
    facts are not formalised here. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Simple.lean
    complete
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.isSimple_congr.{u} {K : Type u}
      [Field K] {A B : TauCeti.AlgebraicGeometry.AbelianVariety K}
      (e : A ≅ B) : A.IsSimple ↔ B.IsSimple
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.isSimple_congr.{u}
      {K : Type u} [Field K]
      {A B :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K}
      (e : A ≅ B) : A.IsSimple ↔ B.IsSimple
    Simplicity only depends on the isomorphism class of the abelian variety. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Simple.lean
    complete
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.not_isSimple_trivial.{u}
      {K : Type u} [Field K] :
      ¬(TauCeti.AlgebraicGeometry.AbelianVariety.trivial K).IsSimple
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.not_isSimple_trivial.{u}
      {K : Type u} [Field K] :
      ¬(TauCeti.AlgebraicGeometry.AbelianVariety.trivial
            K).IsSimple
    The trivial abelian variety is not simple. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Isogenous.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsIsogenous.{u} {K : Type u}
      [Field K] (A B : TauCeti.AlgebraicGeometry.AbelianVariety K) : Prop
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsIsogenous.{u}
      {K : Type u} [Field K]
      (A B :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Prop
    Two abelian varieties `A` and `B` over `K` are **isogenous** (LMFDB `av.isogeny`) if there is
    an isogeny `A ⟶ B`, that is a homomorphism whose underlying morphism of schemes is finite and
    surjective. 
  • defdefined in TauCeti/AlgebraicGeometry/AbelianVariety/Product.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.prod.{u} {K : Type u} [Field K]
      (A B : TauCeti.AlgebraicGeometry.AbelianVariety K) :
      TauCeti.AlgebraicGeometry.AbelianVariety K
    def TauCeti.AlgebraicGeometry.AbelianVariety.prod.{u}
      {K : Type u} [Field K]
      (A B :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      TauCeti.AlgebraicGeometry.AbelianVariety
        K
    The product of two abelian varieties over `K`. Its underlying scheme is their fibre product
    over `Spec K`, and its group law is componentwise. 
Definition1.27
uses 0used by 1✓L∃∀N

Non-singular point (definition). (LMFDB)

Let V be a variety over a perfect field F. A point P of V is non-singular if the module of differentials of V is locally free at P. According to the Jacobian criterion, if V is defined in a neighborhood of P by affine polynomial equations f_1(X_1, \ldots, X_n) = \ldots =f_r(X_1, \ldots, X_n)=0, then V is non-singular at P if the Jacobian matrix \left( \frac{\partial f_i}{\partial X_j} \right)_{ij} has the same rank as the codimension of V in \mathbb{A}^n.

Lean code for Definition1.27●3 declarations
  • defdefined in Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean
    complete
    def AlgebraicGeometry.Scheme.Hom.smoothLocus.{u}
      {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y)
      [AlgebraicGeometry.LocallyOfFinitePresentation f] : X.Opens
    def AlgebraicGeometry.Scheme.Hom.smoothLocus.{u}
      {X Y : AlgebraicGeometry.Scheme}
      (f : X ⟶ Y)
      [AlgebraicGeometry.LocallyOfFinitePresentation
          f] :
      X.Opens
    The set of points smooth over a base, as a `Scheme.Opens`. 
  • defdefined in Mathlib/RingTheory/Smooth/Locus.lean
    complete
    def Algebra.smoothLocus.{u_1, u_2} (R : Type u_1) (A : Type u_2)
      [CommRing R] [CommRing A] [Algebra R A] : Set (PrimeSpectrum A)
    def Algebra.smoothLocus.{u_1, u_2}
      (R : Type u_1) (A : Type u_2)
      [CommRing R] [CommRing A]
      [Algebra R A] : Set (PrimeSpectrum A)
    `Algebra.smoothLocus R A` is the set of primes `p` of `A`
    such that `Aₚ` is formally smooth over `R`. 
  • theoremdefined in Mathlib/RingTheory/Smooth/Locus.lean
    complete
    theorem Algebra.smoothLocus_eq_compl_support_inter.{u_1, u_2} {R : Type u_1}
      {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A]
      [Algebra.EssFiniteType R A] :
      Algebra.smoothLocus R A =
        (Module.support A (Algebra.H1Cotangent R A))ᶜ ∩
          Module.freeLocus A Ω[A⁄R]
    theorem Algebra.smoothLocus_eq_compl_support_inter.{u_1,
        u_2}
      {R : Type u_1} {A : Type u_2}
      [CommRing R] [CommRing A] [Algebra R A]
      [Algebra.EssFiniteType R A] :
      Algebra.smoothLocus R A =
        (Module.support A
              (Algebra.H1Cotangent R A))ᶜ ∩
          Module.freeLocus A Ω[A⁄R]
Definition1.28
Statement uses 4
Statement dependency previews
Preview
Definition 1.6
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 9
Reverse dependency previews
Preview
Definition 1.5
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Algebraic variety. (LMFDB)

There are two main kinds of algebraic varieties, *affine varieties* and *projective varieties*. Both are defined as the set of common zeros of a collection of polynomials. Let K be a field with algebraic closure \overline{K}.

An affine algebraic set is a subset of affine space \mathbb{A}^n(\overline{K}) of the form

V(I) = \{P \in \mathbb{A}^n(\overline{K}) : f(P) = 0\text{ for all }f \in I\}

where I \subseteq \overline{K}[x_1,\dots,x_n] is an ideal. Given an affine algebraic set V, its defining ideal is

I(V) = \{ f \in \overline{K}[x_1,\dots,x_n] : f(P)=0\text{ for all }P \in V\}.

An affine variety over \overline{K} is an affine algebraic set whose defining ideal I \subseteq \overline{K}[x_1,\dots,x_n] is a prime ideal. An affine variety over K is an affine variety over \overline{K} whose defining ideal can be generated by polynomials in K[x_1,\dots,x_n].

We define projective notions similarly. A projective algebraic set is a subset of projective space \mathbb{P}^n(\overline{K}) defined by a *homogeneous* ideal I \subseteq \overline{K}[x_1,\dots,x_n]. A projective variety over \overline{K} is a projective algebraic set whose defining ideal is a homogeneous prime ideal. A projective variety over K is a projective variety over \overline{K} whose defining ideal can be generated by homogeneous polynomials in K[x_1,\dots,x_n].

Depends on: Definition 1.6 Definition 1.23 Definition 1.134 Definition 1.145

Lean code for Definition1.28●5 definitions
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/Affine.lean
    complete
    def MvPolynomial.IsAffineAlgebraicSet.{u_1, u_3} {σ : Type u_1}
      {L : Type u_3} [Field L] (V : Set (σ → L)) : Prop
    def MvPolynomial.IsAffineAlgebraicSet.{u_1,
        u_3}
      {σ : Type u_1} {L : Type u_3} [Field L]
      (V : Set (σ → L)) : Prop
    An **affine algebraic set** (LMFDB `ag.variety`): a subset `V` of affine space `σ → L` of the
    form `V(I) = {P | f(P) = 0 for all f ∈ I}` for an ideal `I` of `L[xᵢ | i ∈ σ]`. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/Affine.lean
    complete
    def MvPolynomial.IsAffineVarietyOver.{u_1, u_2, u_3} {σ : Type u_1}
      (K : Type u_2) {L : Type u_3} [Field K] [Field L] [Algebra K L]
      (V : Set (σ → L)) : Prop
    def MvPolynomial.IsAffineVarietyOver.{u_1,
        u_2, u_3}
      {σ : Type u_1} (K : Type u_2)
      {L : Type u_3} [Field K] [Field L]
      [Algebra K L] (V : Set (σ → L)) : Prop
    An **affine variety over `K`** (LMFDB `ag.variety`): an affine variety `V` over `L = K̄` whose
    defining ideal can be generated by polynomials with coefficients in `K`. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/Projective.lean
    complete
    def MvPolynomial.IsProjectiveAlgebraicSet.{u_1, u_3} {σ : Type u_1}
      {L : Type u_3} [Field L] (V : Set (Projectivization L (σ → L))) : Prop
    def MvPolynomial.IsProjectiveAlgebraicSet.{u_1,
        u_3}
      {σ : Type u_1} {L : Type u_3} [Field L]
      (V : Set (Projectivization L (σ → L))) :
      Prop
    A **projective algebraic set** (LMFDB `ag.variety`): a subset `V` of projective space `ℙ(L^σ)`
    which is the zero locus of a homogeneous ideal `I` of `L[xᵢ | i ∈ σ]`. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/Projective.lean
    complete
    def MvPolynomial.IsProjectiveVarietyOver.{u_1, u_2, u_3} {σ : Type u_1}
      (K : Type u_2) {L : Type u_3} [Field K] [Field L] [Algebra K L]
      (V : Set (Projectivization L (σ → L))) : Prop
    def MvPolynomial.IsProjectiveVarietyOver.{u_1,
        u_2, u_3}
      {σ : Type u_1} (K : Type u_2)
      {L : Type u_3} [Field K] [Field L]
      [Algebra K L]
      (V : Set (Projectivization L (σ → L))) :
      Prop
    A **projective variety over `K`** (LMFDB `ag.variety`): a projective variety `V` over `L = K̄`
    whose defining ideal can be generated by homogeneous polynomials with coefficients in `K`. 
  • class(extends 4, 4 methods)defined in LeanBridge/ForMathlib/AlgebraicGeometry/Variety/Basic.lean
    complete
    class AlgebraicGeometry.Scheme.IsVarietyOver.{u} (K : Type u) [Field K]
      {X : AlgebraicGeometry.Scheme} [X.Over (AlgebraicGeometry.Spec ↧K)] :
      Prop
    class AlgebraicGeometry.Scheme.IsVarietyOver.{u}
      (K : Type u) [Field K]
      {X : AlgebraicGeometry.Scheme}
      [X.Over (AlgebraicGeometry.Spec ↧K)] :
      Prop
    An **algebraic variety** over a field `K` (LMFDB `ag.variety`), as a scheme: a scheme over `K`
    that is geometrically integral, separated and of finite type (quasi-compact and locally of finite
    type) over `K`. 
    • AlgebraicGeometry.GeometricallyIntegral (X ↘ AlgebraicGeometry.Spec ↧K)
    • AlgebraicGeometry.IsSeparated (X ↘ AlgebraicGeometry.Spec ↧K)
    • AlgebraicGeometry.LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec ↧K)
    • AlgebraicGeometry.QuasiCompact (X ↘ AlgebraicGeometry.Spec ↧K)
    geometrically_isIntegral : AlgebraicGeometry.geometrically AlgebraicGeometry.IsIntegral (X ↘ AlgebraicGeometry.Spec ↧K)
    Inherited from
    1. AlgebraicGeometry.GeometricallyIntegral
    isClosedImmersion_diagonal : AlgebraicGeometry.IsClosedImmersion (CategoryTheory.Limits.pullback.diagonal (X ↘ AlgebraicGeometry.Spec ↧K))
    Inherited from
    1. AlgebraicGeometry.IsSeparated
    finiteType_appLE : ∀ {U : (AlgebraicGeometry.Spec ↧K).Opens},
      AlgebraicGeometry.IsAffineOpen U →
        ∀ {V : X.Opens},
          AlgebraicGeometry.IsAffineOpen V →
            ∀ (e : V ≤ (TopologicalSpace.Opens.map (X ↘ AlgebraicGeometry.Spec ↧K).base).obj U),
              (CommRingCat.Hom.hom (AlgebraicGeometry.Scheme.Hom.appLE (X ↘ AlgebraicGeometry.Spec ↧K) U V e)).FiniteType
    Inherited from
    1. AlgebraicGeometry.LocallyOfFiniteType
    isCompact_preimage : ∀ (U : Set ↥(AlgebraicGeometry.Spec ↧K)), IsOpen U → IsCompact U → IsCompact (⇑(X ↘ AlgebraicGeometry.Spec ↧K) ⁻¹' U)
    Inherited from
    1. AlgebraicGeometry.QuasiCompact
Definition1.29
uses 0
Used by 9
Reverse dependency previews
Preview
Definition 1.30
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
XL∃∀N

Binary operation. (LMFDB)

A binary operation, on a set S is a function S\times S\to S.

If the operation is denoted by *, then the output of this function applied to (s_1,s_2) is typically denoted s_1*s_2.

Definition1.30
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 1.75
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Associative binary operation. (LMFDB)

If * is a binary operation on a set A, then * is associative on A if for all a,b,c\in A,

a*(b*c)=(a*b)*c. /div>

Depends on: Definition 1.29

Lean code for Definition1.30●2 definitions
  • class(1 method)defined in Init/Core.lean
    complete
    class Std.Associative.{u} {α : Sort u} (op : α → α → α) : Prop
    class Std.Associative.{u} {α : Sort u}
      (op : α → α → α) : Prop
    `Associative op` indicates `op` is an associative operation,
    i.e. `(a ∘ b) ∘ c = a ∘ (b ∘ c)`.
    
    assoc : ∀ (a b c : α), op (op a b) c = op a (op b c)
    An associative operation satisfies `(a ∘ b) ∘ c = a ∘ (b ∘ c)`. 
  • class(extends 1, 2 methods)defined in Mathlib/Algebra/Group/Semigroup.lean
    complete
    class Semigroup.{u_2} (G : Type u_2) : Type u_2
    class Semigroup.{u_2} (G : Type u_2) : Type u_2
    A semigroup is a type with an associative `(*)`. 
    • Mul G
    mul : G → G → G
    Inherited from
    1. Mul
    mul_assoc : ∀ (a b c : G), a * b * c = a * (b * c)
    Multiplication is associative 
Definition1.31
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 1.76
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Commutative binary operation. (LMFDB)

If * is a binary operation on a set A, then * is commutative on A if for all a,b\in A,

a*b=b*a.

Depends on: Definition 1.29

Lean code for Definition1.31●2 definitions
  • class(1 method)defined in Init/Core.lean
    complete
    class Std.Commutative.{u} {α : Sort u} (op : α → α → α) : Prop
    class Std.Commutative.{u} {α : Sort u}
      (op : α → α → α) : Prop
    `Commutative op` says that `op` is a commutative operation,
    i.e. `a ∘ b = b ∘ a`.
    
    comm : ∀ (a b : α), op a b = op b a
    A commutative operation satisfies `a ∘ b = b ∘ a`. 
  • class(extends 1, 2 methods)defined in Mathlib/Algebra/Group/Semigroup.lean
    complete
    class CommMagma.{u_2} (G : Type u_2) : Type u_2
    class CommMagma.{u_2} (G : Type u_2) : Type u_2
    A commutative multiplicative magma is a type with a multiplication which commutes. 
    • Mul G
    mul : G → G → G
    Inherited from
    1. Mul
    mul_comm : ∀ (a b : G), a * b = b * a
    Multiplication is commutative in a commutative multiplicative magma. 
Definition1.32
uses 1
Used by 4
Reverse dependency previews
Preview
Definition 1.33
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Identity for a binary operation. (LMFDB)

If * is a binary operation on a set A, then A has an identity element with respect to * if there exists e\in A such that for all a\in A,

a*e = e*a = a.

Such an identity element e, if it exists, is unique and is thus called the identity element of A with respect to *.

Depends on: Definition 1.29

Lean code for Definition1.32●3 declarations
  • class(extends 5, 2 methods)defined in Init/Core.lean
    complete
    class Std.LawfulIdentity.{u} {α : Sort u} (op : α → α → α) (o : outParam α) :
      Prop
    class Std.LawfulIdentity.{u} {α : Sort u}
      (op : α → α → α) (o : outParam α) : Prop
    `LawfulIdentity op o` indicates `o` is a verified left and right
    identity of `op`.
    
    • Std.Identity op o
    • Std.LawfulLeftIdentity op o
    • Std.LawfulRightIdentity op o
    left_id : ∀ (a : α), op o a = a
    Inherited from
    1. Std.LawfulLeftIdentity
    right_id : ∀ (a : α), op a o = a
    Inherited from
    1. Std.LawfulRightIdentity
  • class(extends 3, 4 methods)defined in Mathlib/Algebra/Group/Monoid.lean
    complete
    class MulOneClass.{u_2} (M : Type u_2) : Type u_2
    class MulOneClass.{u_2} (M : Type u_2) :
      Type u_2
    Typeclass for expressing that a type `M` with multiplication and a one satisfies
    `1 * a = a` and `a * 1 = a` for all `a : M`. 
    • One M
    • Mul M
    • MulOne M
    one : M
    Inherited from
    1. One
    mul : M → M → M
    Inherited from
    1. Mul
    one_mul : ∀ (a : M), 1 * a = a
    One is a left neutral element for multiplication 
    mul_one : ∀ (a : M), a * 1 = a
    One is a right neutral element for multiplication 
  • theoremdefined in Mathlib/Algebra/Group/Monoid.lean
    complete
    theorem MulOneClass.ext.{u_2} {M : Type u_2} ⦃m₁ m₂ : MulOneClass M⦄ :
      Mul.mul = Mul.mul → m₁ = m₂
    theorem MulOneClass.ext.{u_2} {M : Type u_2}
      ⦃m₁ m₂ : MulOneClass M⦄ :
      Mul.mul = Mul.mul → m₁ = m₂
Definition1.33
Statement uses 2
Statement dependency previews
Preview
Definition 1.29
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Definition 1.75
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Inverse for a binary operation. (LMFDB)

If * is a binary operation on a set A having identity element e\in A, then an element a\in A has an inverse in A with respect to * if there exists a'\in A such that

a*a' = a'*a = e.

Depends on: Definition 1.29 Definition 1.32

Lean code for Definition1.33●1 definition
  • class(3 methods)defined in Mathlib/Algebra/Group/Invertible/Defs.lean
    complete
    class Invertible.{u} {α : Type u} [Mul α] [One α] (a : α) : Type u
    class Invertible.{u} {α : Type u} [Mul α]
      [One α] (a : α) : Type u
    `Invertible a` gives a two-sided multiplicative inverse of `a`. 
    invOf : α
    The inverse of an `Invertible` element 
    invOf_mul_self : ⅟a * a = 1
    `invOf a` is a left inverse of `a` 
    mul_invOf_self : a * ⅟a = 1
    `invOf a` is a right inverse of `a` 
Definition1.34
uses 0used by 1✓L∃∀N

Symplectic isomorphism. (LMFDB)

Let N \ge 1. Let \mu_N be the group of Nth roots of unity in some algebraically closed field of characteristic not dividing N. Let M be a free rank 2 \Z/N\Z-module together with an isomorphism \alpha \colon \bigwedge^2 M \stackrel{\sim}\to \mu_N, or equivalently with a nondegenerate alternating pairing M \times M \to \mu_N. For example, M could be E[N] for an elliptic curve E, together with the Weil pairing. Or M could be \Z/N\Z \times \mu_N with the "determinant" pairing (a,\gamma),(b,\delta) \mapsto \delta^a/\gamma^b.

A symplectic isomorphism from M to another such structure M' is a \Z/N\Z-module isomorphism M \to M' such that the induced isomorphism \bigwedge^2 M \to \bigwedge^2 M' gets identified via \alpha and \alpha' with the identity \mu_N \to \mu_N.

The same definition makes sense in a context in which each free rank 2 \Z/N\Z-module is enriched with a Galois action to make a Galois module, or replaced by a finite etale group scheme that is (\Z/N\Z)^2 etale locally.

Lean code for Definition1.34●3 declarations
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/SymplecticIsomorphism.lean
    complete
    def LinearEquiv.IsSymplectic.{u_1, u_2, u_3} {N : ℕ} {K : Type u_1}
      [CommRing K] {M : Type u_2} {M' : Type u_3} [AddCommGroup M]
      [Module (ZMod N) M] [AddCommGroup M'] [Module (ZMod N) M']
      (f : M ≃ₗ[ZMod N] M')
      (α : ↥(⋀[ZMod N]^2 M) ≃ₗ[ZMod N] Additive ↥(rootsOfUnity N K))
      (α' : ↥(⋀[ZMod N]^2 M') ≃ₗ[ZMod N] Additive ↥(rootsOfUnity N K)) :
      Prop
    def LinearEquiv.IsSymplectic.{u_1, u_2, u_3}
      {N : ℕ} {K : Type u_1} [CommRing K]
      {M : Type u_2} {M' : Type u_3}
      [AddCommGroup M] [Module (ZMod N) M]
      [AddCommGroup M'] [Module (ZMod N) M']
      (f : M ≃ₗ[ZMod N] M')
      (α :
        ↥(⋀[ZMod N]^2 M) ≃ₗ[ZMod N]
          Additive ↥(rootsOfUnity N K))
      (α' :
        ↥(⋀[ZMod N]^2 M') ≃ₗ[ZMod N]
          Additive ↥(rootsOfUnity N K)) :
      Prop
    An isomorphism `f : M ≃ M'` of `ℤ/Nℤ`-modules with symplectic structures `α : ⋀²M ≃ μ_N` and
    `α' : ⋀²M' ≃ μ_N` is a **symplectic isomorphism** (LMFDB `alg.symplectic_isomorphism`) if the
    isomorphism `⋀²f : ⋀²M ≃ ⋀²M'` it induces is identified through `α` and `α'` with the identity of
    `μ_N`, that is, if `α' ∘ ⋀²f = α`. The LMFDB uses it for free modules of rank `2`. 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/SymplecticIsomorphism.lean
    complete
    theorem LinearEquiv.isSymplectic_iff.{u_1, u_2, u_3} {N : ℕ} {K : Type u_1}
      [CommRing K] {M : Type u_2} {M' : Type u_3} [AddCommGroup M]
      [Module (ZMod N) M] [AddCommGroup M'] [Module (ZMod N) M']
      (f : M ≃ₗ[ZMod N] M')
      (α : ↥(⋀[ZMod N]^2 M) ≃ₗ[ZMod N] Additive ↥(rootsOfUnity N K))
      (α' : ↥(⋀[ZMod N]^2 M') ≃ₗ[ZMod N] Additive ↥(rootsOfUnity N K)) :
      f.IsSymplectic α α' ↔
        ∀ (x y : M),
          α' ((exteriorPower.ιMulti (ZMod N) 2) ![f x, f y]) =
            α ((exteriorPower.ιMulti (ZMod N) 2) ![x, y])
    theorem LinearEquiv.isSymplectic_iff.{u_1, u_2,
        u_3}
      {N : ℕ} {K : Type u_1} [CommRing K]
      {M : Type u_2} {M' : Type u_3}
      [AddCommGroup M] [Module (ZMod N) M]
      [AddCommGroup M'] [Module (ZMod N) M']
      (f : M ≃ₗ[ZMod N] M')
      (α :
        ↥(⋀[ZMod N]^2 M) ≃ₗ[ZMod N]
          Additive ↥(rootsOfUnity N K))
      (α' :
        ↥(⋀[ZMod N]^2 M') ≃ₗ[ZMod N]
          Additive ↥(rootsOfUnity N K)) :
      f.IsSymplectic α α' ↔
        ∀ (x y : M),
          α'
              ((exteriorPower.ιMulti (ZMod N)
                  2)
                ![f x, f y]) =
            α
              ((exteriorPower.ιMulti (ZMod N)
                  2)
                ![x, y])
    **An isomorphism is symplectic exactly when it preserves the alternating pairings**
    `(x, y) ↦ α (x ∧ y)` defined by the symplectic structures. 
  • defdefined in Mathlib/LinearAlgebra/ExteriorPower/Basic.lean
    complete
    def exteriorPower.map.{u, u_1, u_2} {R : Type u} [CommRing R] (n : ℕ)
      {M : Type u_1} {N : Type u_2} [AddCommGroup M] [Module R M]
      [AddCommGroup N] [Module R N] (f : M →ₗ[R] N) :
      ↥(⋀[R]^n M) →ₗ[R] ↥(⋀[R]^n N)
    def exteriorPower.map.{u, u_1, u_2}
      {R : Type u} [CommRing R] (n : ℕ)
      {M : Type u_1} {N : Type u_2}
      [AddCommGroup M] [Module R M]
      [AddCommGroup N] [Module R N]
      (f : M →ₗ[R] N) :
      ↥(⋀[R]^n M) →ₗ[R] ↥(⋀[R]^n N)
    The linear map between `n`th exterior powers induced by a linear map between the modules. 
Definition1.35
Statement uses 2
Statement dependency previews
Preview
Definition 1.84
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 7
Reverse dependency previews
Preview
Definition 1.36
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Artin representation (definition). (LMFDB)

An Artin representation is a continuous homomorphism \rho:\mathrm{Gal}(\overline{\Q}/\Q)\to\GL(V) from the absolute Galois group of \Q to the automorphism group of a finite-dimensional \C-vector space V. Here continuity means that \rho factors through the Galois group of some finite extension K/\Q. The smallest such K is called the Artin field of \rho.

Depends on: Definition 1.84 Definition 2.21

Lean code for Definition1.35●5 declarations
  • structure(2 fields)defined in LeanBridge/ForMathlib/NumberTheory/Artin/Basic.lean
    complete
    structure Representation.IsArtin.{u_1, u_2} {K : Type u_1} {V : Type u_2}
      [Field K] [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(AlgebraicClosure K/K) V) : Prop
    structure Representation.IsArtin.{u_1, u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [AddCommGroup V] [Module ℂ V]
      (ρ :
        Representation ℂ
          Gal(AlgebraicClosure K/K) V) :
      Prop
    A representation `ρ` of the absolute Galois group `Gal(K̄/K)` of a field `K` (Mathlib's
    `Field.absoluteGaloisGroup K`) on a complex vector space `V` is an **Artin representation** (LMFDB
    `artin`, where `K = ℚ`) if `V` is finite-dimensional and `ρ` is continuous, which means that its
    kernel is open in the Krull topology: equivalently, `ρ` factors through the Galois group of a
    finite Galois extension of `K` (`Representation.isArtin_iff_exists_finiteGaloisIntermediateField`).
    
    finiteDimensional_space : FiniteDimensional ℂ V
    An Artin representation is finite-dimensional. 
    isOpen_ker : IsOpen ↑(MonoidHom.ker ρ)
    An Artin representation is continuous: its kernel is open. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Basic.lean
    complete
    def Representation.artinField.{u_1, u_2} {K : Type u_1} {V : Type u_2}
      [Field K] [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(AlgebraicClosure K/K) V) :
      IntermediateField K (AlgebraicClosure K)
    def Representation.artinField.{u_1, u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [AddCommGroup V] [Module ℂ V]
      (ρ :
        Representation ℂ
          Gal(AlgebraicClosure K/K) V) :
      IntermediateField K (AlgebraicClosure K)
    The **Artin field** of a representation `ρ` of `Gal(K̄/K)` (LMFDB `artin`): the subfield of
    `K̄` fixed by the kernel of `ρ`. For an Artin representation, it is the smallest extension of `K`
    in `K̄` through whose Galois group `ρ` factors (`Representation.IsArtin.artinField_le_iff`). 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Basic.lean
    complete
    theorem Representation.isArtin_iff_exists_finiteGaloisIntermediateField.{u_1,
        u_2}
      {K : Type u_1} {V : Type u_2} [Field K] [AddCommGroup V] [Module ℂ V]
      {ρ : Representation ℂ Gal(AlgebraicClosure K/K) V} [CharZero K] :
      ρ.IsArtin ↔
        FiniteDimensional ℂ V ∧ ∃ L, L.fixingSubgroup ≤ MonoidHom.ker ρ
    theorem Representation.isArtin_iff_exists_finiteGaloisIntermediateField.{u_1,
        u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [AddCommGroup V] [Module ℂ V]
      {ρ :
        Representation ℂ
          Gal(AlgebraicClosure K/K) V}
      [CharZero K] :
      ρ.IsArtin ↔
        FiniteDimensional ℂ V ∧
          ∃ L,
            L.fixingSubgroup ≤ MonoidHom.ker ρ
    **An Artin representation is a representation factoring through a finite Galois quotient**:
    a representation on a finite-dimensional space is an Artin representation if and only if it is
    trivial on `Gal(K̄/L)` for a finite Galois extension `L` of `K`. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Basic.lean
    complete
    theorem Representation.isArtin_iff_continuous.{u_1, u_3} {K : Type u_1}
      [Field K] [CharZero K] {W : Type u_3} [NormedAddCommGroup W]
      [NormedSpace ℂ W] [FiniteDimensional ℂ W]
      (π : Representation ℂ Gal(AlgebraicClosure K/K) W) :
      π.IsArtin ↔ Continuous fun σ => LinearMap.toContinuousLinearMap (π σ)
    theorem Representation.isArtin_iff_continuous.{u_1,
        u_3}
      {K : Type u_1} [Field K] [CharZero K]
      {W : Type u_3} [NormedAddCommGroup W]
      [NormedSpace ℂ W]
      [FiniteDimensional ℂ W]
      (π :
        Representation ℂ
          Gal(AlgebraicClosure K/K) W) :
      π.IsArtin ↔
        Continuous fun σ =>
          LinearMap.toContinuousLinearMap
            (π σ)
    **An Artin representation is a continuous homomorphism to `GL(W)`**: a representation `π` on a
    finite-dimensional normed space `W` is an Artin representation if and only if `σ ↦ π(σ)` is
    continuous for the norm topology on the endomorphisms of `W`, since the profinite group `Gal(K̄/K)`
    has arbitrarily small open subgroups, while `GL(W)` has no small subgroups. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Basic.lean
    complete
    theorem Representation.IsArtin.artinField_le_iff.{u_1, u_2} {K : Type u_1}
      {V : Type u_2} [Field K] [AddCommGroup V] [Module ℂ V]
      {ρ : Representation ℂ Gal(AlgebraicClosure K/K) V} [CharZero K]
      (h : ρ.IsArtin) (L : IntermediateField K (AlgebraicClosure K)) :
      ρ.artinField ≤ L ↔ L.fixingSubgroup ≤ MonoidHom.ker ρ
    theorem Representation.IsArtin.artinField_le_iff.{u_1,
        u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [AddCommGroup V] [Module ℂ V]
      {ρ :
        Representation ℂ
          Gal(AlgebraicClosure K/K) V}
      [CharZero K] (h : ρ.IsArtin)
      (L :
        IntermediateField K
          (AlgebraicClosure K)) :
      ρ.artinField ≤ L ↔
        L.fixingSubgroup ≤ MonoidHom.ker ρ
    **The Artin field is the smallest field through whose Galois group an Artin representation
    factors**: `ρ` is trivial on `Gal(K̄/L)` if and only if `L` contains the Artin field of `ρ`. 
Definition1.36
Statement uses 8
Statement dependency previews
Preview
Definition 1.35
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Conductor of an Artin representation. (LMFDB)

The conductor of an Artin representation is a positive integer that measures its ramification. It can be expressed as a product of local conductors.

Let K/\Q be a Galois extension and \rho:\Gal(K/\Q)\to\GL(V) an Artin representation. Then the conductor of \rho is \prod_p p^{f(\rho,p)} for non-negative integers f(\rho,p), where the product is taken over prime numbers p.

To define the exponents f(\rho,p), fix a prime \mathfrak{p} of K above p and consider the corresponding extension of local fields K_{\mathfrak{p}}/\Q_p with Galois group G. Then G has a filtration of higher ramification groups in lower numbering G_i, as defined in Chapter IV of Serre's Local Fields . In particular, G_{-1}=G, G_0 is the inertia group of K_{\mathfrak{p}}/\Q_p, and G_1 is the wild inertia group, which is a finite p-group.

Let g_i = |G_i|. Then

f(\rho, p) = \sum_{i\geq 0} \frac{g_i}{g_0} (\dim(V) - \dim(V^{G_i}))

where V^{G_i} is the subspace of V fixed by G_i.

Note that if p is unramified in K, then f(\rho,p)=0 and conversely, if \rho is faithful and p is ramified in K, then f(\rho,p)>0.

Depends on: Definition 1.35 Definition 1.40 Definition 1.62 Definition 1.101 Definition 1.104 Definition 1.108 Definition 2.31 Definition 2.47

Lean code for Definition1.36●5 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Conductor.lean
    complete
    def Representation.artinConductor.{u_1, u_2} {K : Type u_1} {V : Type u_2}
      [Field K] [NumberField K] [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(K/ℚ) V) : ℝ
    def Representation.artinConductor.{u_1, u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [NumberField K] [AddCommGroup V]
      [Module ℂ V]
      (ρ : Representation ℂ Gal(K/ℚ) V) : ℝ
    The **conductor** of a representation `ρ` of `Gal(K/ℚ)` on a finite-dimensional complex vector
    space (LMFDB `artin.conductor`): the product `∏_p p^f(ρ, p)` over the prime numbers. Artin's
    theorem that the exponents `f(ρ, p)` are integers, so that the conductor is a positive integer, is
    not proved here: the exponents are rational numbers, and the conductor is a real number. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Conductor.lean
    complete
    def Representation.artinConductorExponent.{u_1, u_2} {K : Type u_1}
      {V : Type u_2} [Field K] [NumberField K] [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(K/ℚ) V) (p : Nat.Primes) : ℚ
    def Representation.artinConductorExponent.{u_1,
        u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [NumberField K] [AddCommGroup V]
      [Module ℂ V]
      (ρ : Representation ℂ Gal(K/ℚ) V)
      (p : Nat.Primes) : ℚ
    The **exponent `f(ρ, p)` of the Artin conductor** (LMFDB `artin.conductor`) of a representation
    `ρ` of `Gal(K/ℚ)` at a prime number `p`: the exponent `f(ρ, Q)` at a prime `Q` of `𝓞 K` above `p`,
    which does not depend on `Q` when `K/ℚ` is Galois (`Representation.artinConductorExponent_eq`). 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Conductor.lean
    complete
    def Representation.artinConductorExponentAt.{u_1, u_2} {K : Type u_1}
      {V : Type u_2} [Field K] [NumberField K] [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(K/ℚ) V)
      (Q : Ideal (NumberField.RingOfIntegers K)) : ℚ
    def Representation.artinConductorExponentAt.{u_1,
        u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [NumberField K] [AddCommGroup V]
      [Module ℂ V]
      (ρ : Representation ℂ Gal(K/ℚ) V)
      (Q :
        Ideal
          (NumberField.RingOfIntegers K)) :
      ℚ
    The **exponent of the Artin conductor** of a representation `ρ` of `Gal(K/ℚ)` at a prime `Q` of
    `𝓞 K`: `f(ρ, Q) = ∑_{i ≥ 0} (g_i / g_0) (dim V - dim V^{G_i})`, where `G_i` is the `i`-th
    ramification group of `Q` and `g_i` its order. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Conductor.lean
    complete
    theorem Representation.artinConductorExponent_eq.{u_1, u_2} {K : Type u_1}
      {V : Type u_2} [Field K] [NumberField K] [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(K/ℚ) V)
      (Q : Ideal (NumberField.RingOfIntegers K)) (p : Nat.Primes)
      [IsGalois ℚ K] [Q.IsPrime] [Q.LiesOver (Ideal.span {↑↑p})] :
      ρ.artinConductorExponent p = ρ.artinConductorExponentAt Q
    theorem Representation.artinConductorExponent_eq.{u_1,
        u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [NumberField K] [AddCommGroup V]
      [Module ℂ V]
      (ρ : Representation ℂ Gal(K/ℚ) V)
      (Q :
        Ideal (NumberField.RingOfIntegers K))
      (p : Nat.Primes) [IsGalois ℚ K]
      [Q.IsPrime]
      [Q.LiesOver (Ideal.span {↑↑p})] :
      ρ.artinConductorExponent p =
        ρ.artinConductorExponentAt Q
    **The exponent of the Artin conductor at `p` is its exponent at any prime above `p`**, since
    the Galois group acts transitively on the primes above `p`. 
  • defdefined in TauCeti/RingTheory/Ideal/RamificationGroup.lean
    complete
    def Ideal.ramificationGroup.{u_1, u_2} (G : Type u_1) [Group G]
      {B : Type u_2} [CommRing B] [MulSemiringAction G B] (Q : Ideal B)
      (i : ℕ) : Subgroup G
    def Ideal.ramificationGroup.{u_1, u_2}
      (G : Type u_1) [Group G] {B : Type u_2}
      [CommRing B] [MulSemiringAction G B]
      (Q : Ideal B) (i : ℕ) : Subgroup G
    The `i`-th **ramification group** of an ideal `Q` for a group `G` acting on the ring: the
    elements of `G` acting trivially on `B ⧸ Q ^ (i + 1)`, that is, the inertia subgroup of
    `Q ^ (i + 1)`. 
Definition1.37
Statement uses 2
Statement dependency previews
Preview
Definition 1.35
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.39
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Number field associated to an Artin representation. (LMFDB)

The Artin field is a number field associated to an Artin representation \rho:\mathrm{Gal}(\overline{\Q}/\Q)\to\GL(V) by being the smallest Galois extension K/\mathbb{Q} such that \rho factors through \mathrm{Gal}(K/\Q).

Depends on: Definition 1.35 Definition 2.1

Lean code for Definition1.37●5 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Basic.lean
    complete
    def Representation.artinField.{u_1, u_2} {K : Type u_1} {V : Type u_2}
      [Field K] [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(AlgebraicClosure K/K) V) :
      IntermediateField K (AlgebraicClosure K)
    def Representation.artinField.{u_1, u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [AddCommGroup V] [Module ℂ V]
      (ρ :
        Representation ℂ
          Gal(AlgebraicClosure K/K) V) :
      IntermediateField K (AlgebraicClosure K)
    The **Artin field** of a representation `ρ` of `Gal(K̄/K)` (LMFDB `artin`): the subfield of
    `K̄` fixed by the kernel of `ρ`. For an Artin representation, it is the smallest extension of `K`
    in `K̄` through whose Galois group `ρ` factors (`Representation.IsArtin.artinField_le_iff`). 
  • defdefined in Mathlib/FieldTheory/Galois/Basic.lean
    complete
    def IntermediateField.fixedField.{u_1, u_2} {F : Type u_1} [Field F]
      {E : Type u_2} [Field E] [Algebra F E] (H : Subgroup Gal(E/F)) :
      IntermediateField F E
    def IntermediateField.fixedField.{u_1, u_2}
      {F : Type u_1} [Field F] {E : Type u_2}
      [Field E] [Algebra F E]
      (H : Subgroup Gal(E/F)) :
      IntermediateField F E
    The intermediate field fixed by a subgroup. 
  • defdefined in Mathlib/Algebra/Group/Subgroup/Ker.lean
    complete
    def MonoidHom.ker.{u_1, u_6} {G : Type u_1} [Group G] {M : Type u_6}
      [MulOneClass M] (f : G →* M) : Subgroup G
    def MonoidHom.ker.{u_1, u_6} {G : Type u_1}
      [Group G] {M : Type u_6} [MulOneClass M]
      (f : G →* M) : Subgroup G
    The multiplicative kernel of a monoid homomorphism is the subgroup of elements `x : G` such that
    `f x = 1` 
  • defdefined in Mathlib/FieldTheory/Galois/Infinite.lean
    complete
    def InfiniteGalois.IntermediateFieldEquivClosedSubgroup.{u_1, u_2}
      {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K]
      [IsGalois k K] : IntermediateField k K ≃o (ClosedSubgroup Gal(K/k))ᵒᵈ
    def InfiniteGalois.IntermediateFieldEquivClosedSubgroup.{u_1,
        u_2}
      {k : Type u_1} {K : Type u_2} [Field k]
      [Field K] [Algebra k K] [IsGalois k K] :
      IntermediateField k K ≃o
        (ClosedSubgroup Gal(K/k))ᵒᵈ
    The Galois correspondence from intermediate fields to closed subgroups. 
  • theoremdefined in Mathlib/FieldTheory/Galois/Infinite.lean
    complete
    theorem InfiniteGalois.isOpen_and_normal_iff_finite_and_isGalois.{u_1, u_2}
      {k : Type u_1} {K : Type u_2} [Field k] [Field K] [Algebra k K]
      (L : IntermediateField k K) [IsGalois k K] :
      IsOpen L.fixingSubgroup.carrier ∧ L.fixingSubgroup.Normal ↔
        FiniteDimensional k ↥L ∧ IsGalois k ↥L
    theorem InfiniteGalois.isOpen_and_normal_iff_finite_and_isGalois.{u_1,
        u_2}
      {k : Type u_1} {K : Type u_2} [Field k]
      [Field K] [Algebra k K]
      (L : IntermediateField k K)
      [IsGalois k K] :
      IsOpen L.fixingSubgroup.carrier ∧
          L.fixingSubgroup.Normal ↔
        FiniteDimensional k ↥L ∧ IsGalois k ↥L
Definition1.38
uses 1used by 1✓L∃∀N

Parity of a representation. (LMFDB)

An Artin representation \rho:\Gal(\overline{\Q}/\Q)\to \GL(V) is even or odd if \det(\rho(c)) equals 1 or -1, respectively, where c is a complex conjugation.

Depends on: Definition 1.35

Lean code for Definition1.38●5 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Parity.lean
    complete
    def Representation.IsEven.{u_1} {V : Type u_1} [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(AlgebraicClosure ℚ/ℚ) V) : Prop
    def Representation.IsEven.{u_1} {V : Type u_1}
      [AddCommGroup V] [Module ℂ V]
      (ρ :
        Representation ℂ
          Gal(AlgebraicClosure ℚ/ℚ) V) :
      Prop
    An Artin representation `ρ` of `Gal(ℚ̄/ℚ)` is **even** (LMFDB `artin.parity`) if
    `det ρ(c) = 1` for the complex conjugations `c`. This holds for one complex conjugation exactly
    when it holds for all of them (`Representation.isEven_iff`). The definition applies to every
    representation; on an infinite-dimensional space, `LinearMap.det` is `1` by convention. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Parity.lean
    complete
    def Representation.IsOdd.{u_1} {V : Type u_1} [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(AlgebraicClosure ℚ/ℚ) V) : Prop
    def Representation.IsOdd.{u_1} {V : Type u_1}
      [AddCommGroup V] [Module ℂ V]
      (ρ :
        Representation ℂ
          Gal(AlgebraicClosure ℚ/ℚ) V) :
      Prop
    An Artin representation `ρ` of `Gal(ℚ̄/ℚ)` is **odd** (LMFDB `artin.parity`) if
    `det ρ(c) = -1` for the complex conjugations `c`. This holds for one complex conjugation exactly
    when it holds for all of them (`Representation.isOdd_iff`). 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Parity.lean
    complete
    def Field.absoluteGaloisGroup.complexConjugation
      (ι : AlgebraicClosure ℚ →+* ℂ) : Gal(AlgebraicClosure ℚ/ℚ)
    def Field.absoluteGaloisGroup.complexConjugation
      (ι : AlgebraicClosure ℚ →+* ℂ) :
      Gal(AlgebraicClosure ℚ/ℚ)
    The **complex conjugation** of `Gal(ℚ̄/ℚ)` attached to an embedding `ι : ℚ̄ → ℂ`: the
    automorphism `c` of `ℚ̄` with `ι (c x) = conj (ι x)`. All complex conjugations are conjugate in
    `Gal(ℚ̄/ℚ)` (`Field.absoluteGaloisGroup.exists_complexConjugation_eq_conj`). 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Parity.lean
    complete
    theorem Representation.det_complexConjugation_eq.{u_1} {V : Type u_1}
      [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(AlgebraicClosure ℚ/ℚ) V)
      (ι ι' : AlgebraicClosure ℚ →+* ℂ) :
      LinearMap.det (ρ (Field.absoluteGaloisGroup.complexConjugation ι')) =
        LinearMap.det (ρ (Field.absoluteGaloisGroup.complexConjugation ι))
    theorem Representation.det_complexConjugation_eq.{u_1}
      {V : Type u_1} [AddCommGroup V]
      [Module ℂ V]
      (ρ :
        Representation ℂ
          Gal(AlgebraicClosure ℚ/ℚ) V)
      (ι ι' : AlgebraicClosure ℚ →+* ℂ) :
      LinearMap.det
          (ρ
            (Field.absoluteGaloisGroup.complexConjugation
              ι')) =
        LinearMap.det
          (ρ
            (Field.absoluteGaloisGroup.complexConjugation
              ι))
    **The determinant at a complex conjugation does not depend on the complex conjugation.** 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Parity.lean
    complete
    theorem Representation.isEven_or_isOdd.{u_1} {V : Type u_1} [AddCommGroup V]
      [Module ℂ V] (ρ : Representation ℂ Gal(AlgebraicClosure ℚ/ℚ) V) :
      ρ.IsEven ∨ ρ.IsOdd
    theorem Representation.isEven_or_isOdd.{u_1}
      {V : Type u_1} [AddCommGroup V]
      [Module ℂ V]
      (ρ :
        Representation ℂ
          Gal(AlgebraicClosure ℚ/ℚ) V) :
      ρ.IsEven ∨ ρ.IsOdd
    **Every representation of `Gal(ℚ̄/ℚ)` is even or odd.** 
Definition1.39
Statement uses 3
Statement dependency previews
Preview
Definition 1.35
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Ramified prime of an Artin representation. (LMFDB)

If \rho:\Gal(\overline{\Q}/\Q)\to\GL_n(\C) is an Artin representation with Artin field K, then a prime p is ramified if it is ramified in K/\Q.

Equivalently, a prime is ramified if the inertia subgroup for a prime above p is not contained in the kernel of \rho.

Depends on: Definition 1.35 Definition 1.37 Definition 2.49

Lean code for Definition1.39●3 declarations
  • defdefined in Mathlib/RingTheory/Unramified/Locus.lean
    complete
    def Algebra.IsUnramifiedIn.{u_1, u_2} {R : Type u_1} [CommRing R]
      (A : Type u_2) [CommRing A] [Algebra R A] (𝔭 : Ideal R) : Prop
    def Algebra.IsUnramifiedIn.{u_1, u_2}
      {R : Type u_1} [CommRing R]
      (A : Type u_2) [CommRing A]
      [Algebra R A] (𝔭 : Ideal R) : Prop
    A prime `𝔭` of `R` is unramified in `A` if every prime ideal `𝔓` of `A` lying over `𝔭` is
    unramified. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Basic.lean
    complete
    def Representation.artinField.{u_1, u_2} {K : Type u_1} {V : Type u_2}
      [Field K] [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(AlgebraicClosure K/K) V) :
      IntermediateField K (AlgebraicClosure K)
    def Representation.artinField.{u_1, u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [AddCommGroup V] [Module ℂ V]
      (ρ :
        Representation ℂ
          Gal(AlgebraicClosure K/K) V) :
      IntermediateField K (AlgebraicClosure K)
    The **Artin field** of a representation `ρ` of `Gal(K̄/K)` (LMFDB `artin`): the subfield of
    `K̄` fixed by the kernel of `ρ`. For an Artin representation, it is the smallest extension of `K`
    in `K̄` through whose Galois group `ρ` factors (`Representation.IsArtin.artinField_le_iff`). 
  • theoremdefined in Mathlib/NumberTheory/RamificationInertia/Unramified.lean
    complete
    theorem Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one.{u_1, u_2}
      {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S]
      [IsDomain R] [Module.Finite ℤ R] [CharZero R]
      [Algebra.EssFiniteType R S] [Algebra.IsIntegral R S] {𝔭 : Ideal R} :
      Algebra.IsUnramifiedIn S 𝔭 ↔
        ∀ (𝔓 : Ideal S) [𝔓.IsPrime], 𝔓.LiesOver 𝔭 → 𝔓.ramificationIdx R = 1
    theorem Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one.{u_1,
        u_2}
      {R : Type u_1} {S : Type u_2}
      [CommRing R] [CommRing S] [Algebra R S]
      [IsDomain R] [Module.Finite ℤ R]
      [CharZero R] [Algebra.EssFiniteType R S]
      [Algebra.IsIntegral R S] {𝔭 : Ideal R} :
      Algebra.IsUnramifiedIn S 𝔭 ↔
        ∀ (𝔓 : Ideal S) [𝔓.IsPrime],
          𝔓.LiesOver 𝔭 →
            𝔓.ramificationIdx R = 1
    A nonzero ideal of `R` is unramified in `S` if and only if every prime ideal of `S` lying
    over it has ramification index `1`. 
Definition1.40
Statement uses 3
Statement dependency previews
Preview
Definition 1.35
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Unramified prime of an Artin representation. (LMFDB)

If \rho:\Gal(\overline{\Q}/\Q)\to\GL_n(\C) is an Artin representation, a prime p is unramified if it is not ramified.

Equivalently, a prime is unramified if the inertia subgroup for a prime above p in the Artin field of \rho is contained in the kernel of \rho.

Depends on: Definition 1.35 Definition 1.37 Definition 1.39

Lean code for Definition1.40●3 declarations
  • defdefined in Mathlib/RingTheory/Unramified/Locus.lean
    complete
    def Algebra.IsUnramifiedIn.{u_1, u_2} {R : Type u_1} [CommRing R]
      (A : Type u_2) [CommRing A] [Algebra R A] (𝔭 : Ideal R) : Prop
    def Algebra.IsUnramifiedIn.{u_1, u_2}
      {R : Type u_1} [CommRing R]
      (A : Type u_2) [CommRing A]
      [Algebra R A] (𝔭 : Ideal R) : Prop
    A prime `𝔭` of `R` is unramified in `A` if every prime ideal `𝔓` of `A` lying over `𝔭` is
    unramified. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/Artin/Basic.lean
    complete
    def Representation.artinField.{u_1, u_2} {K : Type u_1} {V : Type u_2}
      [Field K] [AddCommGroup V] [Module ℂ V]
      (ρ : Representation ℂ Gal(AlgebraicClosure K/K) V) :
      IntermediateField K (AlgebraicClosure K)
    def Representation.artinField.{u_1, u_2}
      {K : Type u_1} {V : Type u_2} [Field K]
      [AddCommGroup V] [Module ℂ V]
      (ρ :
        Representation ℂ
          Gal(AlgebraicClosure K/K) V) :
      IntermediateField K (AlgebraicClosure K)
    The **Artin field** of a representation `ρ` of `Gal(K̄/K)` (LMFDB `artin`): the subfield of
    `K̄` fixed by the kernel of `ρ`. For an Artin representation, it is the smallest extension of `K`
    in `K̄` through whose Galois group `ρ` factors (`Representation.IsArtin.artinField_le_iff`). 
  • theoremdefined in Mathlib/NumberTheory/RamificationInertia/Unramified.lean
    complete
    theorem Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one.{u_1, u_2}
      {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S]
      [IsDomain R] [Module.Finite ℤ R] [CharZero R]
      [Algebra.EssFiniteType R S] [Algebra.IsIntegral R S] {𝔭 : Ideal R} :
      Algebra.IsUnramifiedIn S 𝔭 ↔
        ∀ (𝔓 : Ideal S) [𝔓.IsPrime], 𝔓.LiesOver 𝔭 → 𝔓.ramificationIdx R = 1
    theorem Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one.{u_1,
        u_2}
      {R : Type u_1} {S : Type u_2}
      [CommRing R] [CommRing S] [Algebra R S]
      [IsDomain R] [Module.Finite ℤ R]
      [CharZero R] [Algebra.EssFiniteType R S]
      [Algebra.IsIntegral R S] {𝔭 : Ideal R} :
      Algebra.IsUnramifiedIn S 𝔭 ↔
        ∀ (𝔓 : Ideal S) [𝔓.IsPrime],
          𝔓.LiesOver 𝔭 →
            𝔓.ramificationIdx R = 1
    A nonzero ideal of `R` is unramified in `S` if and only if every prime ideal of `S` lying
    over it has ramification index `1`. 
Definition1.41
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 1.43
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
XL∃∀N

Isogeny of abelian varieties. (LMFDB)

An isogeny of abelian varieties is a surjective algebraic group homomorphism with finite kernel.

Two abelian varieties are isogenous if there is an isogeny between them. This defines an equivalence relation on the set of isomorphism classes. Equivalence classes are called isogeny classes.

Depends on: Definition 1.5

Definition1.42
uses 1used by 1✓L∃∀N

Simple abelian variety. (LMFDB)

An abelian variety is simple if it is nonzero and not isogenous to a product of abelian varieties of lower dimension.

Depends on: Definition 1.5

Lean code for Definition1.42●5 declarations
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Simple.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsSimple.{u} {K : Type u}
      [Field K] (A : TauCeti.AlgebraicGeometry.AbelianVariety K) : Prop
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsSimple.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Prop
    An abelian variety `A` over `K` is **simple** (LMFDB `ag.simple`, `av.simple`) if it is nonzero
    and not isogenous to a product `B × C` of abelian varieties of lower dimension.
    
    The LMFDB allows products of any number of factors of lower dimension. Two factors suffice:
    isogenous abelian varieties have the same dimension, dimension is additive in products, and a
    factor of dimension zero is trivial, so a product of more factors regroups into two. Being
    isogenous is symmetric, so the direction of the isogeny `A ⟶ B × C` does not matter either. These
    facts are not formalised here. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Simple.lean
    complete
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.isSimple_congr.{u} {K : Type u}
      [Field K] {A B : TauCeti.AlgebraicGeometry.AbelianVariety K}
      (e : A ≅ B) : A.IsSimple ↔ B.IsSimple
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.isSimple_congr.{u}
      {K : Type u} [Field K]
      {A B :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K}
      (e : A ≅ B) : A.IsSimple ↔ B.IsSimple
    Simplicity only depends on the isomorphism class of the abelian variety. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Simple.lean
    complete
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.not_isSimple_trivial.{u}
      {K : Type u} [Field K] :
      ¬(TauCeti.AlgebraicGeometry.AbelianVariety.trivial K).IsSimple
    theorem TauCeti.AlgebraicGeometry.AbelianVariety.not_isSimple_trivial.{u}
      {K : Type u} [Field K] :
      ¬(TauCeti.AlgebraicGeometry.AbelianVariety.trivial
            K).IsSimple
    The trivial abelian variety is not simple. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/AbelianVariety/Isogenous.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsIsogenous.{u} {K : Type u}
      [Field K] (A B : TauCeti.AlgebraicGeometry.AbelianVariety K) : Prop
    def TauCeti.AlgebraicGeometry.AbelianVariety.IsIsogenous.{u}
      {K : Type u} [Field K]
      (A B :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      Prop
    Two abelian varieties `A` and `B` over `K` are **isogenous** (LMFDB `av.isogeny`) if there is
    an isogeny `A ⟶ B`, that is a homomorphism whose underlying morphism of schemes is finite and
    surjective. 
  • defdefined in TauCeti/AlgebraicGeometry/AbelianVariety/Product.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.prod.{u} {K : Type u} [Field K]
      (A B : TauCeti.AlgebraicGeometry.AbelianVariety K) :
      TauCeti.AlgebraicGeometry.AbelianVariety K
    def TauCeti.AlgebraicGeometry.AbelianVariety.prod.{u}
      {K : Type u} [Field K]
      (A B :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K) :
      TauCeti.AlgebraicGeometry.AbelianVariety
        K
    The product of two abelian varieties over `K`. Its underlying scheme is their fibre product
    over `Spec K`, and its group law is componentwise. 
Definition1.43
Statement uses 2
Statement dependency previews
Preview
Definition 1.41
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Tate module of an abelian variety. (LMFDB)

Let p \in \mathbb{Z}_{\geq 0} be a prime and A an abelian variety of dimension g defined over a field K. The p-adic Tate module of A is the inverse limit

T_p(A) = \lim_{\xleftarrow[n \in \mathbb{N}]{}} A[p^n].

Here for m\in\mathbb{Z}_{> 0}, A[m] denotes the m-torsion subgroup of A, which is the kernel of the multiplication-by-m isogeny of A.

If K has characteristic not equal to p, then T_p(A) is a free \Z_p-module of rank 2g. It carries an action of the absolute Galois group of K, and thus has an associated Galois representation.

Depends on: Definition 1.41 Definition 1.84

Lean code for Definition1.43●4 definitions
  • structure(4 fields)defined in TauCeti/AlgebraicGeometry/AbelianVariety/Basic.lean
    complete
    structure TauCeti.AlgebraicGeometry.AbelianVariety.{u} (K : Type u) [Field K] :
      Type (u + 1)
    structure TauCeti.AlgebraicGeometry.AbelianVariety.{u}
      (K : Type u) [Field K] : Type (u + 1)
    An **abelian variety** over a field `K`: a proper geometrically integral group scheme over
    `Spec K`.
    
    The group-object structure lives on `toOver : Over (Spec (.of K))`; the underlying scheme is
    `toScheme = toOver.left`. The fields are the standing hypotheses of the theory: `grpObj` is the
    group law, `isProper` says the structure morphism to `Spec K` is proper, and
    `geometricallyIntegral` records the geometric hypothesis from which smoothness, geometric
    connectedness, absolute integrality, and commutativity are derived. 
    toOver : CategoryTheory.Over (AlgebraicGeometry.Spec ↧K)
    The underlying group scheme over `Spec K`. 
    grpObj : CategoryTheory.GrpObj self.toOver
    The group-object structure on `toOver`. 
    isProper : AlgebraicGeometry.IsProper self.toOver.hom
    The structure morphism to `Spec K` is proper. 
    geometricallyIntegral : AlgebraicGeometry.GeometricallyIntegral self.toOver.hom
    The structure morphism to `Spec K` is geometrically integral. 
  • defdefined in TauCeti/AlgebraicGeometry/GroupScheme/Torsion.lean
    complete
    def TauCeti.GroupScheme.torsion.{u} {S : AlgebraicGeometry.Scheme}
      (G : CategoryTheory.CommGrp (CategoryTheory.Over S)) (n : ℤ) :
      CategoryTheory.Grp (CategoryTheory.Over S)
    def TauCeti.GroupScheme.torsion.{u}
      {S : AlgebraicGeometry.Scheme}
      (G :
        CategoryTheory.CommGrp
          (CategoryTheory.Over S))
      (n : ℤ) :
      CategoryTheory.Grp
        (CategoryTheory.Over S)
    **The `n`-torsion `G[n]` of a commutative group scheme** `G` over `S`: the scheme-theoretic
    kernel of multiplication by `n`, the integer `n` of the endomorphism ring of `G`, as a group object
    of `Over S`. 
  • defdefined in TauCeti/Algebra/Module/Torsion/TateModule.lean
    complete
    def TauCeti.TateModule.{u_1} (p : ℕ) (A : Type u_1) [AddCommGroup A] :
      Type u_1
    def TauCeti.TateModule.{u_1} (p : ℕ)
      (A : Type u_1) [AddCommGroup A] :
      Type u_1
    The `p`-adic Tate module of an abelian group: compatible families of `p^n`-torsion points. 
  • defdefined in TauCeti/AlgebraicGeometry/EllipticCurve/TateModule/Galois.lean
    complete
    def WeierstrassCurve.tateModuleGaloisRepresentation.{u_1, u_2}
      {F : Type u_1} {K : Type u_2} [Field F] [Field K] [DecidableEq K]
      [Algebra F K] (W : WeierstrassCurve F) (ℓ : ℕ) [Fact (Nat.Prime ℓ)] :
      Representation ℤ_[ℓ] Gal(K/F)
        (TauCeti.TateModule ℓ (W.baseChange K).toAffine.Point)
    def WeierstrassCurve.tateModuleGaloisRepresentation.{u_1,
        u_2}
      {F : Type u_1} {K : Type u_2} [Field F]
      [Field K] [DecidableEq K] [Algebra F K]
      (W : WeierstrassCurve F) (ℓ : ℕ)
      [Fact (Nat.Prime ℓ)] :
      Representation ℤ_[ℓ] Gal(K/F)
        (TauCeti.TateModule ℓ
          (W.baseChange K).toAffine.Point)
    **The `ℓ`-adic Galois representation** of `W`: an `F`-automorphism `σ` of `K` acts on the
    Tate module `T_ℓ E` of `W` over `K` by applying `σ` to the coordinates of every point of every
    level `E[ℓ ^ n]`. 
Definition1.44
Statement uses 2
Statement dependency previews
Preview
Definition 1.5
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Twist of an abelian variety. (LMFDB)

A twist of an abelian variety A is an abelian variety A' over the same field that becomes isomorphic to A upon base change to an algebraic closure.

Depends on: Definition 1.5 Definition 1.7

Lean code for Definition1.44●2 definitions
  • structure(4 fields)defined in TauCeti/AlgebraicGeometry/AbelianVariety/Basic.lean
    complete
    structure TauCeti.AlgebraicGeometry.AbelianVariety.{u} (K : Type u) [Field K] :
      Type (u + 1)
    structure TauCeti.AlgebraicGeometry.AbelianVariety.{u}
      (K : Type u) [Field K] : Type (u + 1)
    An **abelian variety** over a field `K`: a proper geometrically integral group scheme over
    `Spec K`.
    
    The group-object structure lives on `toOver : Over (Spec (.of K))`; the underlying scheme is
    `toScheme = toOver.left`. The fields are the standing hypotheses of the theory: `grpObj` is the
    group law, `isProper` says the structure morphism to `Spec K` is proper, and
    `geometricallyIntegral` records the geometric hypothesis from which smoothness, geometric
    connectedness, absolute integrality, and commutativity are derived. 
    toOver : CategoryTheory.Over (AlgebraicGeometry.Spec ↧K)
    The underlying group scheme over `Spec K`. 
    grpObj : CategoryTheory.GrpObj self.toOver
    The group-object structure on `toOver`. 
    isProper : AlgebraicGeometry.IsProper self.toOver.hom
    The structure morphism to `Spec K` is proper. 
    geometricallyIntegral : AlgebraicGeometry.GeometricallyIntegral self.toOver.hom
    The structure morphism to `Spec K` is geometrically integral. 
  • defdefined in TauCeti/AlgebraicGeometry/AbelianVariety/Basic.lean
    complete
    def TauCeti.AlgebraicGeometry.AbelianVariety.baseChange.{u} {K : Type u}
      [Field K] (A : TauCeti.AlgebraicGeometry.AbelianVariety K)
      (L : Type u) [Field L] [Algebra K L] :
      TauCeti.AlgebraicGeometry.AbelianVariety L
    def TauCeti.AlgebraicGeometry.AbelianVariety.baseChange.{u}
      {K : Type u} [Field K]
      (A :
        TauCeti.AlgebraicGeometry.AbelianVariety
          K)
      (L : Type u) [Field L] [Algebra K L] :
      TauCeti.AlgebraicGeometry.AbelianVariety
        L
    The base change of an abelian variety along a field extension `K → L`, obtained by pulling
    back the group scheme along `Spec L → Spec K`.
    
    Properness and geometric integrality are stable under base change, and the monoidal pullback
    functor carries the group-object structure (`Functor.grpObjObj`), so the result is again an
    abelian variety. This realizes the roadmap's base-change compatibility of the Jacobian at the
    level of abelian varieties. 
Definition1.45
uses 0
Used by 29
Reverse dependency previews
Preview
Definition 1.46
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Dirichlet character. (LMFDB)

A Dirichlet character is a function \chi: \Z\to \C together with a positive integer q called the modulus such that \chi is completely multiplicative, i.e. \chi(mn)=\chi(m)\chi(n) for all integers m and n, and \chi is periodic modulo q, i.e. \chi(n+q)=\chi(n) for all n. If (n,q)>1 then \chi(n)=0, whereas if (n,q)=1, then \chi(n) is a root of unity. The character \chi is primitive if its conductor is equal to its modulus.

Lean code for Definition1.45●1 definition
  • abbrevdefined in Mathlib/NumberTheory/DirichletCharacter/Basic.lean
    complete
    abbrev DirichletCharacter.{u_1} (R : Type u_1) [CommMonoidWithZero R] (n : ℕ) :
      Type u_1
    abbrev DirichletCharacter.{u_1} (R : Type u_1)
      [CommMonoidWithZero R] (n : ℕ) :
      Type u_1
    The type of Dirichlet characters of level `n`. 
Definition1.46
uses 1
Used by 5
Reverse dependency previews
Preview
Definition 1.51
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Conductor of a Dirichlet character. (LMFDB)

The conductor of a Dirichlet character \chi modulo q is the least positive integer q_1 dividing q for which \chi(n+kq_1)=\chi(n) for all n and n+kq_1 coprime to q.

Depends on: Definition 1.45

Lean code for Definition1.46●1 definition
  • defdefined in Mathlib/NumberTheory/DirichletCharacter/Basic.lean
    complete
    def DirichletCharacter.conductor.{u_1} {R : Type u_1} [CommMonoidWithZero R]
      {n : ℕ} (χ : DirichletCharacter R n) : ℕ
    def DirichletCharacter.conductor.{u_1}
      {R : Type u_1} [CommMonoidWithZero R]
      {n : ℕ} (χ : DirichletCharacter R n) : ℕ
    The minimum natural number level `n` through which `χ` factors. 
Definition1.47
Statement uses 5
Statement dependency previews
Preview
Definition 1.45
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 9
Reverse dependency previews
Preview
Definition 1.48
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Galois orbit of a Dirichlet character. (LMFDB)

The Galois orbit of a Dirichlet character \chi of modulus q and order n is the set [\chi]:=\{\sigma(\chi): \sigma\in \Gal(\Q(\zeta_n)/\Q)\}, where \sigma(\chi) denotes the Dirichlet character of modulus q defined by k \mapsto \sigma(\chi(k)). The map \chi\to \sigma(\chi) defines a faithful action of the Galois group \Gal(\Q(\zeta_n)/\Q) on the set of Dirichlet characters of modulus q and order n, each of which has \Q(\zeta_n) as its field of values.

Depends on: Definition 1.45 Definition 1.52 Definition 1.53 Definition 1.56 Definition 2.21

Lean code for Definition1.47●1 definition
  • defdefined in TauCeti/NumberTheory/MulChar/GaloisOrbit.lean
    complete
    def MulChar.galoisOrbit.{u_1, u_2} {M : Type u_1} [CommMonoid M]
      {R : Type u_2} [CommMonoidWithZero R] (χ : MulChar M R) :
      Set (MulChar M R)
    def MulChar.galoisOrbit.{u_1, u_2}
      {M : Type u_1} [CommMonoid M]
      {R : Type u_2} [CommMonoidWithZero R]
      (χ : MulChar M R) : Set (MulChar M R)
    The Galois orbit of a multiplicative character `χ`: the characters generating the same cyclic
    subgroup of characters as `χ`. When `χ` has finite order these are the powers `χ ^ a` with `a`
    prime to its order (`MulChar.mem_galoisOrbit_iff_exists_pow`). When moreover the monoid has
    finitely many units and the values lie in a field of characteristic zero, they are the conjugates
    `σ ∘ χ` under the embeddings `σ` of the field generated by the values of `χ`
    (`MulChar.mem_galoisOrbit_iff_exists_algHom`). 
Definition1.48
Statement uses 6
Statement dependency previews
Preview
Definition 1.45
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Orbit index of a Dirichlet character. (LMFDB)

The Galois orbits of Dirichlet characters of modulus q are ordered as follows. Let \chi be any character in the Galois orbit [\chi] and define the N-tuple of integers

t([\chi]) := (n,t_1,t_2,\ldots,t_{q-1}) \in \Z^q,

where n is the order of \chi and t_i:=\mathrm{tr}_{\Q(\chi)/\Q}(\chi(i)) is the trace of \chi(i) from the field of values of \chi to \Q. The q-tuple t([\chi]) is independent of the choice of representative \chi and uniquely identifies the Galois orbit [\chi].

The orbit index of \chi is the index of t([\chi]) in the lexicographic ordering of all such tuples arising for Dirichlet characters of modulus q; indexing begins at 1, which is always the index of the Galois orbit of the principal character of modulus 1.

Depends on: Definition 1.45 Definition 1.47 Definition 1.52 Definition 1.53 Definition 1.55 Definition 1.56

Lean code for Definition1.48●5 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/GaloisOrbitLabel.lean
    complete
    def DirichletCharacter.galoisOrbitIndex {q : ℕ}
      (χ : DirichletCharacter ℂ q) : ℕ
    def DirichletCharacter.galoisOrbitIndex
      {q : ℕ} (χ : DirichletCharacter ℂ q) : ℕ
    The **orbit index** of a Dirichlet character `χ` of modulus `q` (LMFDB
    `character.dirichlet.galois_orbit_index`): the position, counted from `1`, of the trace vector of
    `χ` in the lexicographic order on the trace vectors of the Dirichlet characters of modulus `q`. It
    depends only on the Galois orbit of `χ` and determines it (`galoisOrbitIndex_eq_iff`). 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/GaloisOrbitLabel.lean
    complete
    def DirichletCharacter.galoisOrbitTraceVector {q : ℕ}
      (χ : DirichletCharacter ℂ q) : List ℚ
    def DirichletCharacter.galoisOrbitTraceVector
      {q : ℕ} (χ : DirichletCharacter ℂ q) :
      List ℚ
    The **trace vector** `t([χ]) = (n, t₁, …, t_{q-1})` of a Dirichlet character `χ` of modulus
    `q`: its order `n` followed by the traces `tᵢ = tr_{ℚ(χ)/ℚ}(χ i)` for `i = 1, …, q - 1`. The `tᵢ`
    are rational integers; we keep them in `ℚ`, whose order agrees with that of `ℤ`. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/GaloisOrbitLabel.lean
    complete
    theorem DirichletCharacter.galoisOrbitIndex_eq_iff {q : ℕ}
      {χ ψ : DirichletCharacter ℂ q} [NeZero q] :
      ψ.galoisOrbitIndex = χ.galoisOrbitIndex ↔ ψ ∈ MulChar.galoisOrbit χ
    theorem DirichletCharacter.galoisOrbitIndex_eq_iff
      {q : ℕ} {χ ψ : DirichletCharacter ℂ q}
      [NeZero q] :
      ψ.galoisOrbitIndex =
          χ.galoisOrbitIndex ↔
        ψ ∈ MulChar.galoisOrbit χ
    Two Dirichlet characters of nonzero modulus have the same orbit index exactly when they lie in
    one Galois orbit. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/GaloisOrbitLabel.lean
    complete
    theorem DirichletCharacter.galoisOrbitTraceVector_eq_iff {q : ℕ}
      {χ ψ : DirichletCharacter ℂ q} [NeZero q] :
      ψ.galoisOrbitTraceVector = χ.galoisOrbitTraceVector ↔
        ψ ∈ MulChar.galoisOrbit χ
    theorem DirichletCharacter.galoisOrbitTraceVector_eq_iff
      {q : ℕ} {χ ψ : DirichletCharacter ℂ q}
      [NeZero q] :
      ψ.galoisOrbitTraceVector =
          χ.galoisOrbitTraceVector ↔
        ψ ∈ MulChar.galoisOrbit χ
    Two Dirichlet characters of nonzero modulus have the same trace vector exactly when they lie
    in one Galois orbit. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/GaloisOrbitLabel.lean
    complete
    theorem DirichletCharacter.galoisOrbitIndex_one {q : ℕ} :
      DirichletCharacter.galoisOrbitIndex 1 = 1
    theorem DirichletCharacter.galoisOrbitIndex_one
      {q : ℕ} :
      DirichletCharacter.galoisOrbitIndex 1 =
        1
    The Galois orbit of the principal character has orbit index `1`, since every other character
    has a larger order. 
Definition1.49
Statement uses 3
Statement dependency previews
Preview
Definition 1.45
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 4
Reverse dependency previews
Preview
Definition 4.24
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Label of a Galois orbit of a Dirichlet character. (LMFDB)

The label of a Galois orbit of a Dirichlet character \chi of modulus N takes the form N.a, where a is a letter or string of letters representing the index of the Galois orbit. The index 1 is written as a, the index 2 is written as b, the index 27 is written as ba, and so on.

Depends on: Definition 1.45 Definition 1.47 Definition 1.48

Lean code for Definition1.49●5 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/GaloisOrbitLabel.lean
    complete
    def DirichletCharacter.galoisOrbitLabel {q : ℕ}
      (χ : DirichletCharacter ℂ q) : String
    def DirichletCharacter.galoisOrbitLabel
      {q : ℕ} (χ : DirichletCharacter ℂ q) :
      String
    The **label** of the Galois orbit of a Dirichlet character `χ` of modulus `q` (LMFDB
    `character.dirichlet.galois_orbit_label`): `q.a`, where `a` is the letter code of the orbit index
    of `χ` minus one, so that the orbit indices `1, 2, 27` are written `a, b, ba`. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/GaloisOrbitLabel.lean
    complete
    def DirichletCharacter.letterCode (n : ℕ) : String
    def DirichletCharacter.letterCode (n : ℕ) :
      String
    The **letter code** of a natural number `n`: its base-`26` expansion with the digits written
    `a, b, …, z`, so that `0, 1, …, 25, 26` are written `a, b, …, z, ba`. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/GaloisOrbitLabel.lean
    complete
    theorem DirichletCharacter.letterCode_zero :
      DirichletCharacter.letterCode 0 = "a"
    theorem DirichletCharacter.letterCode_zero :
      DirichletCharacter.letterCode 0 = "a"
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/GaloisOrbitLabel.lean
    complete
    theorem DirichletCharacter.letterCode_one :
      DirichletCharacter.letterCode 1 = "b"
    theorem DirichletCharacter.letterCode_one :
      DirichletCharacter.letterCode 1 = "b"
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/GaloisOrbitLabel.lean
    complete
    theorem DirichletCharacter.letterCode_twentySix :
      DirichletCharacter.letterCode 26 = "ba"
    theorem DirichletCharacter.letterCode_twentySix :
      DirichletCharacter.letterCode 26 = "ba"
Definition1.50
Statement uses 2
Statement dependency previews
Preview
Definition 1.45
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 6
Reverse dependency previews
Preview
Definition 1.54
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Induced Dirichlet character. (LMFDB)

A Dirichlet character \chi_1 of modulus q_1 is said to be induced by a Dirichlet character \chi_2 of modulus q_2 dividing q_1 if \chi_1(m)=\chi_2(m) for all m coprime to q_1.

A Dirichlet character is primitive if it is not induced by any character other than itself; every Dirichlet character is induced by a uniquely determined primitive Dirichlet character.

Depends on: Definition 1.45 Definition 1.52

Lean code for Definition1.50●1 definition
  • defdefined in Mathlib/NumberTheory/DirichletCharacter/Basic.lean
    complete
    def DirichletCharacter.changeLevel.{u_1} {R : Type u_1}
      [CommMonoidWithZero R] {n m : ℕ} (hm : n ∣ m) :
      DirichletCharacter R n →* DirichletCharacter R m
    def DirichletCharacter.changeLevel.{u_1}
      {R : Type u_1} [CommMonoidWithZero R]
      {n m : ℕ} (hm : n ∣ m) :
      DirichletCharacter R n →*
        DirichletCharacter R m
    A function that modifies the level of a Dirichlet character to some multiple
    of its original level. 
Definition1.51
Statement uses 6
Statement dependency previews
Preview
Definition 1.45
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 4.49
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Minimal Dirichlet character. (LMFDB)

A Dirichlet character \chi of prime power modulus N is minimal if the following conditions both hold:

  1. The conductor of \chi does not lie in the open interval (\sqrt{N},N), and if N is a square divisible by 16 then {\rm cond}(\chi)\in \{\sqrt{N},N\}.

  2. Both the order and conductor of \chi are minimal among the set of all Dirichlet character \chi\psi^2 for which {\rm cond}(\psi){\rm cond}(\chi\psi) | N.

This includes all primitive Dirichlet characters of prime power modulus, but not every minimal Dirichlet character of prime power modulus is primitive.

For a composite modulus N with prime power factorization N=p_1^{e_1}\cdots p_n^{e_n}, a Dirichlet character \chi of modulus N is minimal if and only if every character in its unique factorization into Dirichlet characters of modulus p_1^{e_1},\cdots,p_n^{e_n} is minimal. The trivial Dirichlet character is minimal.

Depends on: Definition 1.45 Definition 1.46 Definition 1.52 Definition 1.53 Definition 1.54 Definition 1.55

Lean code for Definition1.51●5 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/Minimal.lean
    complete
    def DirichletCharacter.IsMinimal {N : ℕ} (χ : DirichletCharacter ℂ N) : Prop
    def DirichletCharacter.IsMinimal {N : ℕ}
      (χ : DirichletCharacter ℂ N) : Prop
    A complex Dirichlet character `χ` modulo `N` is **minimal** (LMFDB
    `character.dirichlet.minimal`) if every character in its factorization into characters of prime
    power moduli `p ^ v_p(N)`, its `p`-parts for the primes `p ∣ N`, is minimal. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/Minimal.lean
    complete
    def DirichletCharacter.IsMinimalOfPrimePowerModulus {N : ℕ}
      (χ : DirichletCharacter ℂ N) : Prop
    def DirichletCharacter.IsMinimalOfPrimePowerModulus
      {N : ℕ} (χ : DirichletCharacter ℂ N) :
      Prop
    A complex Dirichlet character `χ` of prime power modulus `N` is **minimal** (LMFDB
    `character.dirichlet.minimal`) if
    1. its conductor does not lie in the open interval `(√N, N)`, and if `N` is a square divisible by
       `16` then its conductor is `√N` or `N`;
    2. both its order and its conductor are minimal among the characters `χψ²`, for `ψ` running over
       the characters modulo `N` with `cond(ψ) cond(χψ) ∣ N`.
    
    We read the second condition as saying that neither the order nor the conductor of `χ` exceeds
    that of such a `χψ²` (`χ` itself is one of them, for `ψ = 1`). The conditions are stated for every
    modulus `N`; the LMFDB uses them for prime powers. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/Minimal.lean
    complete
    def DirichletCharacter.primePowerPart.{u_1} {R : Type u_1}
      [CommMonoidWithZero R] {N : ℕ} (p : ℕ) (ψ : DirichletCharacter R N) :
      DirichletCharacter R (p ^ N.factorization p)
    def DirichletCharacter.primePowerPart.{u_1}
      {R : Type u_1} [CommMonoidWithZero R]
      {N : ℕ} (p : ℕ)
      (ψ : DirichletCharacter R N) :
      DirichletCharacter R
        (p ^ N.factorization p)
    The **`p`-part** of a Dirichlet character `ψ` modulo `N`: the character modulo the exact prime
    power divisor `p ^ v_p(N)` of `N` that sends `u` to `ψ û`, where `û ≡ u` modulo `p ^ v_p(N)` and
    `û ≡ 1` modulo `N / p ^ v_p(N)`. The `p`-parts of `ψ`, for `p` dividing `N`, are the characters of
    prime power modulus into which `ψ` factors uniquely
    (`TauCeti.Nat.IsExactDivisor.eq_mul_comp_unitsMap`). 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/Minimal.lean
    complete
    theorem DirichletCharacter.IsPrimitive.isMinimalOfPrimePowerModulus {N : ℕ}
      {χ : DirichletCharacter ℂ N} (hN : IsPrimePow N)
      (hχ : χ.IsPrimitive) : χ.IsMinimalOfPrimePowerModulus
    theorem DirichletCharacter.IsPrimitive.isMinimalOfPrimePowerModulus
      {N : ℕ} {χ : DirichletCharacter ℂ N}
      (hN : IsPrimePow N)
      (hχ : χ.IsPrimitive) :
      χ.IsMinimalOfPrimePowerModulus
    A primitive Dirichlet character of prime power modulus is minimal. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/DirichletCharacter/Minimal.lean
    complete
    theorem DirichletCharacter.isMinimalOfPrimePowerModulus_one_iff {N : ℕ}
      [NeZero N] :
      DirichletCharacter.IsMinimalOfPrimePowerModulus 1 ↔
        ¬(IsSquare N ∧ 16 ∣ N)
    theorem DirichletCharacter.isMinimalOfPrimePowerModulus_one_iff
      {N : ℕ} [NeZero N] :
      DirichletCharacter.IsMinimalOfPrimePowerModulus
          1 ↔
        ¬(IsSquare N ∧ 16 ∣ N)
    The trivial character modulo `N` satisfies the conditions for minimality of a character of prime
    power modulus exactly when `N` is not a square divisible by `16`: the LMFDB's claim that the
    trivial character is minimal fails for the moduli `2 ^ e` with `e ≥ 4` even. 
Definition1.52
uses 0
Used by 10
Reverse dependency previews
Preview
Definition 1.47
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Modulus of a Dirichlet character. (LMFDB)

A Dirichlet character is a function \chi: \mathbb{Z}\to \mathbb{C} together with a positive integer q, called the modulus of the character, such that \chi is completely multiplicative, i.e. \chi(mn)=\chi(m)\chi(n) for all integers m and n, and \chi is periodic modulo q, i.e. \chi(n+q)=\chi(n) for all n. If (n,q)>1 then \chi(n)=0, whereas if (n,q)=1, then \chi(n) is a root of unity.

Lean code for Definition1.52●4 declarations
  • abbrevdefined in Mathlib/NumberTheory/DirichletCharacter/Basic.lean
    complete
    abbrev DirichletCharacter.{u_1} (R : Type u_1) [CommMonoidWithZero R] (n : ℕ) :
      Type u_1
    abbrev DirichletCharacter.{u_1} (R : Type u_1)
      [CommMonoidWithZero R] (n : ℕ) :
      Type u_1
    The type of Dirichlet characters of level `n`. 
  • structure(extends 3, 4 fields)defined in Mathlib/NumberTheory/MulChar/Basic.lean
    complete
    structure MulChar.{u_1, u_2} (R : Type u_1) [CommMonoid R] (R' : Type u_2)
      [CommMonoidWithZero R'] : Type (max u_1 u_2)
    structure MulChar.{u_1, u_2} (R : Type u_1)
      [CommMonoid R] (R' : Type u_2)
      [CommMonoidWithZero R'] :
      Type (max u_1 u_2)
    Define a structure for multiplicative characters.
    A multiplicative character from a commutative monoid `R` to a commutative monoid with zero `R'`
    is a homomorphism of (multiplicative) monoids that sends non-units to zero. 
    • R →* R'
    toFun : R → R'
    Inherited from
    1. MonoidHom
    2. OneHom
    map_one' : (↑self.toMonoidHom).toFun 1 = 1
    Inherited from
    1. MonoidHom
    2. OneHom
    map_mul' : ∀ (x y : R), (↑self.toMonoidHom).toFun (x * y) = (↑self.toMonoidHom).toFun x * (↑self.toMonoidHom).toFun y
    Inherited from
    1. MonoidHom
    map_nonunit' : ∀ (a : R), ¬IsUnit a → (↑self.toMonoidHom).toFun a = 0
  • theoremdefined in Mathlib/NumberTheory/DirichletCharacter/Basic.lean
    complete
    theorem DirichletCharacter.apply_eq_zero_iff.{u_1} {R : Type u_1}
      [CommMonoidWithZero R] {n : ℕ} (χ : DirichletCharacter R n)
      [Nontrivial R] (a : ℤ) : χ ↑a = 0 ↔ ¬IsCoprime a ↑n
    theorem DirichletCharacter.apply_eq_zero_iff.{u_1}
      {R : Type u_1} [CommMonoidWithZero R]
      {n : ℕ} (χ : DirichletCharacter R n)
      [Nontrivial R] (a : ℤ) :
      χ ↑a = 0 ↔ ¬IsCoprime a ↑n
  • theoremdefined in Mathlib/NumberTheory/MulChar/Lemmas.lean
    complete
    theorem MulChar.apply_mem_rootsOfUnity.{u_1, u_2} {R : Type u_1} {R' : Type u_2}
      [CommRing R] [CommRing R'] [Fintype Rˣ] (a : Rˣ) {χ : MulChar R R'} :
      (MulChar.equivToUnitHom χ) a ∈ rootsOfUnity (Fintype.card Rˣ) R'
    theorem MulChar.apply_mem_rootsOfUnity.{u_1, u_2}
      {R : Type u_1} {R' : Type u_2}
      [CommRing R] [CommRing R'] [Fintype Rˣ]
      (a : Rˣ) {χ : MulChar R R'} :
      (MulChar.equivToUnitHom χ) a ∈
        rootsOfUnity (Fintype.card Rˣ) R'
    The values of a multiplicative character on `R` are `n`th roots of unity, where `n = #Rˣ`. 
Definition1.53
Statement uses 3
Statement dependency previews
Preview
Definition 1.45
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 5
Reverse dependency previews
Preview
Definition 1.47
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Order of a Dirichlet character. (LMFDB)

The order of a Dirichlet character \chi is the least positive integer n such that \chi^n is the trivial character of the same modulus as \chi. Equivalently, it is the order n of the image of \chi in \mathbb{C}^\times, the group of nth roots of unity.

Depends on: Definition 1.45 Definition 1.52 Definition 1.55

Lean code for Definition1.53●1 definition
  • defdefined in Mathlib/GroupTheory/OrderOfElement.lean
    complete
    def orderOf.{u_1} {G : Type u_1} [Monoid G] (x : G) : ℕ
    def orderOf.{u_1} {G : Type u_1} [Monoid G]
      (x : G) : ℕ
    `orderOf x` is the order of the element `x`, i.e. the `n ≥ 1`, s.t. `x ^ n = 1` if it exists.
    Otherwise, i.e. if `x` is of infinite order, then `orderOf x` is `0` by convention. 
Definition1.54
Statement uses 4
Statement dependency previews
Preview
Definition 1.45
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 7
Reverse dependency previews
Preview
Definition 1.51
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Primitive Dirichlet character. (LMFDB)

A Dirichlet character \chi is primitive if its conductor is equal to its modulus; equivalently, \chi is not induced by a Dirichlet character of smaller modulus.

Depends on: Definition 1.45 Definition 1.46 Definition 1.50 Definition 1.52

Lean code for Definition1.54●1 definition
  • defdefined in Mathlib/NumberTheory/DirichletCharacter/Basic.lean
    complete
    def DirichletCharacter.IsPrimitive.{u_1} {R : Type u_1}
      [CommMonoidWithZero R] {n : ℕ} (χ : DirichletCharacter R n) : Prop
    def DirichletCharacter.IsPrimitive.{u_1}
      {R : Type u_1} [CommMonoidWithZero R]
      {n : ℕ} (χ : DirichletCharacter R n) :
      Prop
    A character is primitive if its level is equal to its conductor. 
Definition1.55
Statement uses 3
Statement dependency previews
Preview
Definition 1.45
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Definition 1.48
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Principal Dirichlet character. (LMFDB)

A Dirichlet character is principal (or trivial) if it has order 1, equivalently, if it is induced by the unique Dirichlet character of modulus 1.

The value of the principal Dirichlet character of modulus q at an integer n is 1 if n is coprime to q and 0 otherwise.

Depends on: Definition 1.45 Definition 1.50 Definition 1.52

Lean code for Definition1.55●3 declarations
  • defdefined in Mathlib/NumberTheory/MulChar/Basic.lean
    complete
    def MulChar.trivial.{u_1, u_2} (R : Type u_1) [CommMonoid R] (R' : Type u_2)
      [CommMonoidWithZero R'] : MulChar R R'
    def MulChar.trivial.{u_1, u_2} (R : Type u_1)
      [CommMonoid R] (R' : Type u_2)
      [CommMonoidWithZero R'] : MulChar R R'
    The trivial multiplicative character. It takes the value `0` on non-units and
    the value `1` on units. 
  • theoremdefined in Mathlib/NumberTheory/MulChar/Basic.lean
    complete
    theorem MulChar.trivial_apply.{u_1, u_2} (R : Type u_1) [CommMonoid R]
      (R' : Type u_2) [CommMonoidWithZero R'] (x : R) :
      (MulChar.trivial R R') x = if IsUnit x then 1 else 0
    theorem MulChar.trivial_apply.{u_1, u_2}
      (R : Type u_1) [CommMonoid R]
      (R' : Type u_2) [CommMonoidWithZero R']
      (x : R) :
      (MulChar.trivial R R') x =
        if IsUnit x then 1 else 0
  • theoremdefined in Mathlib/NumberTheory/DirichletCharacter/Basic.lean
    complete
    theorem DirichletCharacter.factorsThrough_one_iff.{u_1} {R : Type u_1}
      [CommMonoidWithZero R] {n : ℕ} (χ : DirichletCharacter R n) :
      χ.FactorsThrough 1 ↔ χ = 1
    theorem DirichletCharacter.factorsThrough_one_iff.{u_1}
      {R : Type u_1} [CommMonoidWithZero R]
      {n : ℕ} (χ : DirichletCharacter R n) :
      χ.FactorsThrough 1 ↔ χ = 1
Definition1.56
uses 1
Used by 3
Reverse dependency previews
Preview
Definition 1.47
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Field of values of a Dirichlet character. (LMFDB)

The field of values of a Dirichlet character \chi\colon\Z\to\C is the field \Q(\chi(\Z)) generated by its values; it is equal to the cyclotomic field \Q(\zeta_n), where n is the order of \chi.

Depends on: Definition 1.53

Lean code for Definition1.56●2 definitions
  • defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Fields.lean
    complete
    def TauCeti.CharacterField {N : ℕ} (χ : (ZMod N)ˣ →* ℂˣ) :
      IntermediateField ℚ ℂ
    def TauCeti.CharacterField {N : ℕ}
      (χ : (ZMod N)ˣ →* ℂˣ) :
      IntermediateField ℚ ℂ
    The subfield of `ℂ` generated over `ℚ` by the values of a nebentypus character. 
  • defdefined in Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean
    complete
    def IntermediateField.adjoin.{u_1, u_2} (F : Type u_1) [Field F]
      {E : Type u_2} [Field E] [Algebra F E] (S : Set E) :
      IntermediateField F E
    def IntermediateField.adjoin.{u_1, u_2}
      (F : Type u_1) [Field F] {E : Type u_2}
      [Field E] [Algebra F E] (S : Set E) :
      IntermediateField F E
    `adjoin F S` extends a field `F` by adjoining a set `S ⊆ E`. 
Definition1.57
Statement uses 2
Statement dependency previews
Preview
Definition 1.10
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.24
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Automorphism group of an algebraic curve. (LMFDB)

An automorphism of an algebraic curve is an isomorphism from the curve to itself. The set of automorphisms of a curve X form a group \mathrm{Aut}(X) under composition; this is the automorphism group of the curve.

The automorphism group of a genus 2 curve necessarily includes the hyperelliptic involution (x,y)\mapsto(x,-y), which is an automorphism of order 2; this means that the automorphism group of a genus 2 curve is never trivial.

The geometric automorphism group of a curve X/k is the automorphism group of X_{\bar k}.

Depends on: Definition 1.10 Definition 1.59

Lean code for Definition1.57●5 declarations
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Automorphism.lean
    complete
    def HyperellipticEquation.hyperellipticInvolution.{u_1} {g : ℕ}
      {K : Type u_1} [Field K] (E : HyperellipticEquation g K) :
      E.FunctionField ≃ₐ[K] E.FunctionField
    def HyperellipticEquation.hyperellipticInvolution.{u_1}
      {g : ℕ} {K : Type u_1} [Field K]
      (E : HyperellipticEquation g K) :
      E.FunctionField ≃ₐ[K] E.FunctionField
    The **hyperelliptic involution** `(x, y) ↦ (x, -y - h(x))` of the curve defined by a Weierstrass
    equation `y² + h(x)y = f(x)` (LMFDB `g2c.aut_grp`), as an automorphism of its function field over
    `K` fixing `K(x)`; the LMFDB writes it `(x, y) ↦ (x, -y)`, for equations with `h = 0`. The
    automorphism group `Aut(X)` of the curve is the opposite of the group of `K`-automorphisms of its
    function field, on which automorphisms act by pull-back. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Automorphism.lean
    complete
    theorem HyperellipticEquation.orderOf_hyperellipticInvolution.{u_1} {g : ℕ}
      {K : Type u_1} [Field K] {E : HyperellipticEquation g K}
      [Invertible 2] (hE : E.discriminant ≠ 0) :
      orderOf E.hyperellipticInvolution = 2
    theorem HyperellipticEquation.orderOf_hyperellipticInvolution.{u_1}
      {g : ℕ} {K : Type u_1} [Field K]
      {E : HyperellipticEquation g K}
      [Invertible 2]
      (hE : E.discriminant ≠ 0) :
      orderOf E.hyperellipticInvolution = 2
    **The hyperelliptic involution has order two** when the discriminant is nonzero. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Curve.lean
    complete
    theorem GenusTwoCurve.nontrivial_algEquiv.{u_1} {K : Type u_1} [Field K]
      [Invertible 2] (C : GenusTwoCurve K) :
      Nontrivial Gal(C.FunctionField/K)
    theorem GenusTwoCurve.nontrivial_algEquiv.{u_1}
      {K : Type u_1} [Field K] [Invertible 2]
      (C : GenusTwoCurve K) :
      Nontrivial Gal(C.FunctionField/K)
    **The automorphism group of a genus 2 curve is never trivial.** 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Curve.lean
    complete
    theorem GenusTwoCurve.orderOf_hyperellipticInvolution.{u_1} {K : Type u_1}
      [Field K] [Invertible 2] (C : GenusTwoCurve K) :
      orderOf C.hyperellipticInvolution = 2
    theorem GenusTwoCurve.orderOf_hyperellipticInvolution.{u_1}
      {K : Type u_1} [Field K] [Invertible 2]
      (C : GenusTwoCurve K) :
      orderOf C.hyperellipticInvolution = 2
    **The hyperelliptic involution of a genus 2 curve has order two.** 
  • structure(1 field)defined in Mathlib/CategoryTheory/Endomorphism.lean
    complete
    structure CategoryTheory.Aut.{v, u} {C : Type u}
      [CategoryTheory.Category.{v, u} C] (X : C) : Type v
    structure CategoryTheory.Aut.{v, u} {C : Type u}
      [CategoryTheory.Category.{v, u} C]
      (X : C) : Type v
    Automorphisms of an object in a category.
    
    The order of arguments in multiplication agrees with
    `Function.comp`, not with `CategoryTheory.CategoryStruct.comp`.
    
    asIso : X ≅ X
    the underlying isomorphism of an automorphism 
Definition1.58
uses 0
Used by 2
Reverse dependency previews
Preview
Definition 1.59
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
XL∃∀N

Discriminant of a genus 2 curve. (LMFDB)

The discriminant \Delta of a Weierstrass equation y^2+h(x)y=f(x) can be computed as

\Delta := \begin{cases} 2^8\text{lc}(f)^2\text{disc}(f+h^2/4)&\text{if }f+h^2/4\text{ has odd degree},\\ 2^8\text{disc}(f+h^2/4)&\text{if }f+h^2/4\text{ has even degree}, \end{cases}

where \text{lc}(f) denotes the leading coefficient of f and \text{disc}(f) its discriminant.

The discriminant of a genus 2 curve over \Q is the discriminant of a minimal equation for the curve; it is an invariant of the curve that does not depend on the choice of minimal equation.

Definition1.59
Statement uses 3
Statement dependency previews
Preview
Definition 1.18
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Genus 2 curve. (LMFDB)

Every (smooth, projective, geometrically integral) curve of genus 2 can be defined by a Weierstrass equation of the form y^2+h(x)y=f(x)

with nonzero discriminant and \deg h \le 3 and \deg f \le 6; in order to have genus 2 we must have \deg h = 3 or \deg f =5,6. Over a field whose characteristic is not 2 one can complete the square to make h(x) zero, but this will yield a model with bad reduction at 2 that is typically not a minimal equation for the curve.

This equation can be viewed as defining the function field of the curve, or as a smooth model of the curve in the weighted projective plane. Every curve of genus 2 admits a degree 2 cover of the projective line (consider the function x) and is therefore a hyperelliptic curve.

Depends on: Definition 1.18 Definition 1.58 Definition 1.61

Lean code for Definition1.59●5 declarations
  • structure(extends 1, 5 fields)defined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Curve.lean
    complete
    structure GenusTwoCurve.{u_1} (K : Type u_1) [Field K] [Invertible 2] : Type u_1
    structure GenusTwoCurve.{u_1} (K : Type u_1)
      [Field K] [Invertible 2] : Type u_1
    A **genus 2 curve** over a field `K` of characteristic not two (LMFDB `g2c.g2curve`), given by a
    Weierstrass equation `y² + h(x)y = f(x)` with `deg h ≤ 3`, `deg f ≤ 6` and nonzero discriminant.
    Its function field `K(x, y)` has genus two (`GenusTwoCurve.genus_functionField`), and `x` exhibits
    it as a hyperelliptic function field (`GenusTwoCurve.isHyperellipticFunctionField`). 
    • HyperellipticEquation 2 K
    h : Polynomial K
    Inherited from
    1. HyperellipticEquation
    f : Polynomial K
    Inherited from
    1. HyperellipticEquation
    natDegree_h_le : self.h.natDegree ≤ 2 + 1
    Inherited from
    1. HyperellipticEquation
    natDegree_f_le : self.f.natDegree ≤ 2 * 2 + 2
    Inherited from
    1. HyperellipticEquation
    discriminant_ne_zero : self.discriminant ≠ 0
    The discriminant of the Weierstrass equation of a genus 2 curve is nonzero. 
  • structure(4 fields)defined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Equation.lean
    complete
    structure HyperellipticEquation.{u_1} (g : ℕ) (R : Type u_1) [CommRing R] :
      Type u_1
    structure HyperellipticEquation.{u_1} (g : ℕ)
      (R : Type u_1) [CommRing R] : Type u_1
    A **Weierstrass equation** `y² + h(x)y = f(x)` of genus `g` over a commutative ring `R` (LMFDB
    `g2c.g2curve` for `g = 2`, and `g2c.minimal_equation`): polynomials `h` and `f` of degrees at most
    `g + 1` and `2g + 2`. Over a field of characteristic not two with nonzero discriminant, it defines
    a curve of genus `g` (`HyperellipticEquation.genus_functionField`), whose smooth projective model
    is the weighted homogeneous equation `y² + h(x, z)y = f(x, z)` of degree `2g + 2`
    (`HyperellipticEquation.weightedEquation`). 
    h : Polynomial R
    The polynomial `h` of `y² + h(x)y = f(x)`. 
    f : Polynomial R
    The polynomial `f` of `y² + h(x)y = f(x)`. 
    natDegree_h_le : self.h.natDegree ≤ g + 1
    The polynomial `h` has degree at most `g + 1`. 
    natDegree_f_le : self.f.natDegree ≤ 2 * g + 2
    The polynomial `f` has degree at most `2g + 2`. 
  • abbrevdefined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/FunctionField.lean
    complete
    abbrev HyperellipticEquation.FunctionField.{u_1} {g : ℕ} {K : Type u_1}
      [Field K] (E : HyperellipticEquation g K) : Type u_1
    abbrev HyperellipticEquation.FunctionField.{u_1}
      {g : ℕ} {K : Type u_1} [Field K]
      (E : HyperellipticEquation g K) :
      Type u_1
    The **function field** `K(x, y)` of a Weierstrass equation `y² + h(x)y = f(x)` (LMFDB
    `g2c.g2curve`): the quotient of `K(x)[Y]` by `Y² + h(x)Y - f(x)`. It is a field when the
    discriminant is nonzero (`HyperellipticEquation.irreducible_equationPolynomial`). 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Curve.lean
    complete
    theorem GenusTwoCurve.genus_functionField.{u_1} {K : Type u_1} [Field K]
      [Invertible 2] (C : GenusTwoCurve K) :
      TauCeti.genus K C.FunctionField = 2
    theorem GenusTwoCurve.genus_functionField.{u_1}
      {K : Type u_1} [Field K] [Invertible 2]
      (C : GenusTwoCurve K) :
      TauCeti.genus K C.FunctionField = 2
    **A genus 2 curve has genus two**: its function field has genus two. 
  • theoremdefined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Curve.lean
    complete
    theorem GenusTwoCurve.isHyperellipticFunctionField.{u_1} {K : Type u_1}
      [Field K] [Invertible 2] (C : GenusTwoCurve K) :
      TauCeti.IsHyperellipticFunctionField K C.FunctionField
    theorem GenusTwoCurve.isHyperellipticFunctionField.{u_1}
      {K : Type u_1} [Field K] [Invertible 2]
      (C : GenusTwoCurve K) :
      TauCeti.IsHyperellipticFunctionField K
        C.FunctionField
    **A genus 2 curve is hyperelliptic**: `K(x)` is a rational subfield of index two of its
    function field. 
Definition1.60
Statement uses 2
Statement dependency previews
Preview
Definition 1.20
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Primes of good reduction. (LMFDB)

A variety X over \mathbb{Q} is said to have good reduction at a prime p if it has an integral model whose reduction modulo p defines a smooth variety of the same dimension; otherwise, p is said to be a prime of bad reduction.

When X is a curve, any prime of good reduction for X is also a prime of good reduction for its Jacobian, but the converse need not hold when X has genus g>1.

For all of the genus 2 curves currently in the LMFDB, every prime of good reduction for the curve is also a prime of good reduction for the Jacobian of the curve.

Depends on: Definition 1.20 Definition 1.28

Lean code for Definition1.60●1 definition
  • structure(7 fields)defined in TauCeti/AlgebraicGeometry/Curves/StableReduction/Model/Basic.lean
    complete
    structure TauCeti.Model.{u} (R K : Type u) [CommRing R] [IsDomain R]
      [IsDiscreteValuationRing R] [Field K] [Algebra R K]
      [IsFractionRing R K] (C : AlgebraicGeometry.Scheme)
      (toK : C ⟶ AlgebraicGeometry.Spec ↧K) : Type (u + 1)
    structure TauCeti.Model.{u} (R K : Type u)
      [CommRing R] [IsDomain R]
      [IsDiscreteValuationRing R] [Field K]
      [Algebra R K] [IsFractionRing R K]
      (C : AlgebraicGeometry.Scheme)
      (toK : C ⟶ AlgebraicGeometry.Spec ↧K) :
      Type (u + 1)
    A flat finitely presented model over a discrete valuation ring, together with an explicit
    identification of its generic fibre with a fixed scheme over the fraction field.
    
    Finite presentation is recorded by Mathlib's three constituent properties:
    `LocallyOfFinitePresentation`, `QuasiCompact`, and `QuasiSeparated`. 
    total : AlgebraicGeometry.Scheme
    The total space of the model. 
    toBase : self.total ⟶ AlgebraicGeometry.Spec ↧R
    The structure morphism of the model. 
    flat : AlgebraicGeometry.Flat self.toBase
    The structure morphism is flat. 
    locallyOfFinitePresentation : AlgebraicGeometry.LocallyOfFinitePresentation self.toBase
    The structure morphism is locally of finite presentation. 
    quasiCompact : AlgebraicGeometry.QuasiCompact self.toBase
    The structure morphism is quasi-compact. 
    quasiSeparated : AlgebraicGeometry.QuasiSeparated self.toBase
    The structure morphism is quasi-separated. 
    genericFiberIso : TauCeti.genericFiber R K self.toBase ≅ CategoryTheory.Over.mk toK
    The chosen identification of the generic fibre with the prescribed scheme over `K`. 
Definition1.61
Statement uses 5
Statement dependency previews
Preview
Definition 1.11
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Minimal equation of a hyperelliptic curve. (LMFDB)

Every (smooth, projective, geometrically integral) hyperelliptic curve X over \Q of genus g can be defined by an integral Weierstrass equation

y^2+h(x)y=f(x),

where h(x) and f(x) are integral polynomials of degree at most g+1 and 2g+2, respectively. Each such equation has a discriminant \Delta. A minimal equation is one for which |\Delta| is minimal among all integral Weierstrass equations for the same curve. Over \Q, every hyperelliptic curve has a minimal equation. The prime divisors of \Delta are the primes of bad reduction for X.

The equation y^2+h(x)y=f(x) uniquely determines a homogeneous equation of weighted degree 6 in variables x,y,z, where y has weight g+1, while x and z both have weight 1: one homogenizes h(x) to obtain a homogeneous polynomial h(x,z) of degree g+1 and homogenizes f(x) to obtain a homogeneous polynomial f(x,z) of degree 2g+2. This yields a smooth projective model y^2+h(x,z)y=f(x,z) for the curve X.

One can always transform the minimal equation into a simplified equation y^2 = g(x) = 4f(x)+h(x)^2, but this equation need not have minimal discriminant and may have bad reduction at primes that do not divide the minimal discriminant (it will always have bad reduction at the prime 2).

Depends on: Definition 1.11 Definition 1.12 Definition 1.18 Definition 1.58 Definition 1.60

Lean code for Definition1.61●5 definitions
  • structure(2 fields)defined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/MinimalEquation.lean
    complete
    structure HyperellipticEquation.IsMinimal {g : ℕ}
      (E : HyperellipticEquation g ℤ) : Prop
    structure HyperellipticEquation.IsMinimal {g : ℕ}
      (E : HyperellipticEquation g ℤ) : Prop
    An integral Weierstrass equation `y² + h(x)y = f(x)` of genus `g` is a **minimal equation**
    (LMFDB `g2c.minimal_equation`) if its discriminant `Δ` is nonzero and `|Δ|` is the smallest among
    the discriminants of the integral Weierstrass equations of genus `g` of the same curve over `ℚ`:
    those with nonzero discriminant whose function fields over `ℚ` are isomorphic to its own. 
    discriminant_ne_zero : E.toRat.discriminant ≠ 0
    A minimal equation has nonzero discriminant. 
    abs_discriminant_le : ∀ (E' : HyperellipticEquation g ℤ),
      E'.toRat.discriminant ≠ 0 →
        Nonempty (E'.toRat.FunctionField ≃ₐ[ℚ] E.toRat.FunctionField) → |E.toRat.discriminant| ≤ |E'.toRat.discriminant|
    The discriminant of a minimal equation has the least absolute value among those of the
    integral equations with nonzero discriminant of the same curve. 
  • structure(4 fields)defined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Equation.lean
    complete
    structure HyperellipticEquation.{u_1} (g : ℕ) (R : Type u_1) [CommRing R] :
      Type u_1
    structure HyperellipticEquation.{u_1} (g : ℕ)
      (R : Type u_1) [CommRing R] : Type u_1
    A **Weierstrass equation** `y² + h(x)y = f(x)` of genus `g` over a commutative ring `R` (LMFDB
    `g2c.g2curve` for `g = 2`, and `g2c.minimal_equation`): polynomials `h` and `f` of degrees at most
    `g + 1` and `2g + 2`. Over a field of characteristic not two with nonzero discriminant, it defines
    a curve of genus `g` (`HyperellipticEquation.genus_functionField`), whose smooth projective model
    is the weighted homogeneous equation `y² + h(x, z)y = f(x, z)` of degree `2g + 2`
    (`HyperellipticEquation.weightedEquation`). 
    h : Polynomial R
    The polynomial `h` of `y² + h(x)y = f(x)`. 
    f : Polynomial R
    The polynomial `f` of `y² + h(x)y = f(x)`. 
    natDegree_h_le : self.h.natDegree ≤ g + 1
    The polynomial `h` has degree at most `g + 1`. 
    natDegree_f_le : self.f.natDegree ≤ 2 * g + 2
    The polynomial `f` has degree at most `2g + 2`. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Equation.lean
    complete
    def HyperellipticEquation.discriminant.{u_1} {g : ℕ} {R : Type u_1}
      [CommRing R] (E : HyperellipticEquation g R) [Invertible 2] : R
    def HyperellipticEquation.discriminant.{u_1}
      {g : ℕ} {R : Type u_1} [CommRing R]
      (E : HyperellipticEquation g R)
      [Invertible 2] : R
    The **discriminant** of a Weierstrass equation `y² + h(x)y = f(x)` of genus `g` (LMFDB
    `g2c.discriminant` for `g = 2`): `2^(4g)` times the discriminant of `f + h²/4` as a binary form of
    degree `2g + 2`. For `g = 2` this is `2⁸ disc(f + h²/4)` if `f + h²/4` has degree six and
    `2⁸ lc(f + h²/4)² disc(f + h²/4)` if it has degree five; the LMFDB writes `lc(f)` for the latter
    leading coefficient, which is the same when `deg h ≤ 2`, as for its reduced integral models. It is
    `0` when `f + h²/4` has smaller degree, where the LMFDB's formula is not meant to apply. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Equation.lean
    complete
    def HyperellipticEquation.weightedEquation.{u_1} {g : ℕ} {R : Type u_1}
      [CommRing R] (E : HyperellipticEquation g R) : MvPolynomial (Fin 3) R
    def HyperellipticEquation.weightedEquation.{u_1}
      {g : ℕ} {R : Type u_1} [CommRing R]
      (E : HyperellipticEquation g R) :
      MvPolynomial (Fin 3) R
    The **weighted homogeneous equation** `y² + h(x, z)y - f(x, z)` of a Weierstrass equation
    `y² + h(x)y = f(x)` of genus `g` (LMFDB `g2c.minimal_equation`), in the variables `x = X 0`,
    `y = X 1` and `z = X 2` of weights `1`, `g + 1` and `1`, where `h(x, z)` and `f(x, z)` are the
    homogenisations of `h` and `f` to degrees `g + 1` and `2g + 2`. It is weighted homogeneous of degree
    `2g + 2` (`HyperellipticEquation.isWeightedHomogeneous_weightedEquation`), and its zero locus in the
    weighted projective plane is the LMFDB's smooth projective model of the curve. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/GenusTwo/Equation.lean
    complete
    def HyperellipticEquation.simplifiedPolynomial.{u_1} {g : ℕ} {R : Type u_1}
      [CommRing R] (E : HyperellipticEquation g R) : Polynomial R
    def HyperellipticEquation.simplifiedPolynomial.{u_1}
      {g : ℕ} {R : Type u_1} [CommRing R]
      (E : HyperellipticEquation g R) :
      Polynomial R
    The polynomial `4f + h²` of a Weierstrass equation `y² + h(x)y = f(x)`: for `w = 2y + h`, the
    equation becomes the simplified equation `w² = 4f + h²`. 
Definition1.62
uses 0used by 1✓L∃∀N

Galois group. (LMFDB)

The Galois group of an irreducible separable polynomial of degree n can be embedded in S_n through its action on the roots of the polynomial, with the image being well-defined up to labeling of the roots. Different labelings lead to conjugate subgroups. The subgroup acts transitively on \{1,\ldots,n\}. Conversely, for every transitive subgroup G of S_n with n\in\mathbb{Z}^+, there is a field K such that G is the Galois group of some polynomial over K.

Lean code for Definition1.62●4 declarations
  • defdefined in Mathlib/FieldTheory/PolynomialGaloisGroup.lean
    complete
    def Polynomial.Gal.{u_1} {F : Type u_1} [Field F] (p : Polynomial F) :
      Type u_1
    def Polynomial.Gal.{u_1} {F : Type u_1}
      [Field F] (p : Polynomial F) : Type u_1
    The Galois group of a polynomial. 
  • defdefined in Mathlib/FieldTheory/PolynomialGaloisGroup.lean
    complete
    def Polynomial.Gal.galActionHom.{u_1, u_2} {F : Type u_1} [Field F]
      (p : Polynomial F) (E : Type u_2) [Field E] [Algebra F E]
      [Fact (Polynomial.map (algebraMap F E) p).Splits] :
      p.Gal →* Equiv.Perm ↑(p.rootSet E)
    def Polynomial.Gal.galActionHom.{u_1, u_2}
      {F : Type u_1} [Field F]
      (p : Polynomial F) (E : Type u_2)
      [Field E] [Algebra F E]
      [Fact
          (Polynomial.map (algebraMap F E)
              p).Splits] :
      p.Gal →* Equiv.Perm ↑(p.rootSet E)
    `Polynomial.Gal.galAction` as a permutation representation 
  • theoremdefined in Mathlib/FieldTheory/PolynomialGaloisGroup.lean
    complete
    theorem Polynomial.Gal.galActionHom_injective.{u_1, u_2} {F : Type u_1}
      [Field F] (p : Polynomial F) (E : Type u_2) [Field E] [Algebra F E]
      [Fact (Polynomial.map (algebraMap F E) p).Splits] :
      Function.Injective ⇑(Polynomial.Gal.galActionHom p E)
    theorem Polynomial.Gal.galActionHom_injective.{u_1,
        u_2}
      {F : Type u_1} [Field F]
      (p : Polynomial F) (E : Type u_2)
      [Field E] [Algebra F E]
      [Fact
          (Polynomial.map (algebraMap F E)
              p).Splits] :
      Function.Injective
        ⇑(Polynomial.Gal.galActionHom p E)
    `gal p` embeds as a subgroup of permutations of the roots of `p` in `E`. 
  • theoremdefined in Mathlib/FieldTheory/PolynomialGaloisGroup.lean
    complete
    theorem Polynomial.Gal.galAction_isPretransitive.{u_1, u_2} {F : Type u_1}
      [Field F] (p : Polynomial F) (E : Type u_2) [Field E] [Algebra F E]
      [Fact (Polynomial.map (algebraMap F E) p).Splits]
      (hp : Irreducible p) : MulAction.IsPretransitive p.Gal ↑(p.rootSet E)
    theorem Polynomial.Gal.galAction_isPretransitive.{u_1,
        u_2}
      {F : Type u_1} [Field F]
      (p : Polynomial F) (E : Type u_2)
      [Field E] [Algebra F E]
      [Fact
          (Polynomial.map (algebraMap F E)
              p).Splits]
      (hp : Irreducible p) :
      MulAction.IsPretransitive p.Gal
        ↑(p.rootSet E)
Definition1.63
uses 0
Used by 3
Reverse dependency previews
Preview
Definition 1.65
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Borel subgroup. (LMFDB)

A Borel subgroup of a general linear group is a subgroup that is conjugate to the group of upper triangular matrices.

The Borel subgroups of \GL_2(\F_p) are maximal subgroups that fix a one-dimensional subspace of \F_p^2; every such subgroup is conjugate to the subgroup of upper triangular matrices.

Subgroup labels containing the letter B identify a subgroup of \GL_2(\F_p) that lies in the Borel subgroup of upper triangular matrices but is not contained in the subgroup of diagonal matrices; these are precisely the subgroups of a Borel subgroup that contain an element of order p.

The label B is used for the full Borel subgroup of upper triangular matrices

The label B.a.b denotes the proper subgroup of B generated by the matrices

\begin{pmatrix}a&0\\0&1/a\end{pmatrix},\ \begin{pmatrix}b&0\\0&r/b\end{pmatrix},\ \begin{pmatrix}1&1\\0&1\end{pmatrix},

where a and b are minimally chosen positive integers and r is the least positive integer generating (\Z/p\Z)^\times\simeq \F_p^\times, as defined in .

Lean code for Definition1.63●5 declarations
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Borel.lean
    complete
    def Matrix.GeneralLinearGroup.IsBorelSubgroup.{u_1, u_2} {n : Type u_1}
      [Fintype n] [LinearOrder n] {R : Type u_2} [CommRing R]
      (H : Subgroup (GL n R)) : Prop
    def Matrix.GeneralLinearGroup.IsBorelSubgroup.{u_1,
        u_2}
      {n : Type u_1} [Fintype n]
      [LinearOrder n] {R : Type u_2}
      [CommRing R] (H : Subgroup (GL n R)) :
      Prop
    A subgroup of `GL_n(R)` is a **Borel subgroup** (LMFDB `gl2.borel`) if it is conjugate to the
    subgroup `TauCeti.upperTriangularGroup n R` of invertible upper triangular matrices. 
  • abbrevdefined in TauCeti/LinearAlgebra/Matrix/GeneralLinearGroup/Borel.lean
    complete
    abbrev TauCeti.GL2Borel.{u} (R : Type u) [CommRing R] : Subgroup (GL (Fin 2) R)
    abbrev TauCeti.GL2Borel.{u} (R : Type u)
      [CommRing R] : Subgroup (GL (Fin 2) R)
    The **Borel subgroup** of `GL₂`, obtained by specializing the general upper-triangular
    subgroup to `Fin 2`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Borel.lean
    complete
    def Matrix.GeneralLinearGroup.labelBAB (p : ℕ) [Fact (Nat.Prime p)]
      (a b : ℕ) : Subgroup (GL (Fin 2) (ZMod p))
    def Matrix.GeneralLinearGroup.labelBAB (p : ℕ)
      [Fact (Nat.Prime p)] (a b : ℕ) :
      Subgroup (GL (Fin 2) (ZMod p))
    The group `B.a.b` (LMFDB `gl2.borel`): the subgroup of the Borel subgroup `B` of `GL₂(𝔽_p)`
    generated by the matrices `!![a, 0; 0, 1/a]`, `!![b, 0; 0, r/b]` and `!![1, 1; 0, 1]`, where `r`
    is the least primitive root modulo `p`. A listed matrix that is not invertible (`p ∣ a` or
    `p ∣ b`) is not among the generators; the label uses minimal positive integers `a` and `b`, which
    avoids this. 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Borel.lean
    complete
    theorem Matrix.GeneralLinearGroup.isBorelSubgroup_iff_exists_lineStabilizer.{u_1}
      {F : Type u_1} [Field F] {H : Subgroup (GL (Fin 2) F)} :
      Matrix.GeneralLinearGroup.IsBorelSubgroup H ↔
        ∃ v, v ≠ 0 ∧ H = Matrix.GeneralLinearGroup.lineStabilizer v
    theorem Matrix.GeneralLinearGroup.isBorelSubgroup_iff_exists_lineStabilizer.{u_1}
      {F : Type u_1} [Field F]
      {H : Subgroup (GL (Fin 2) F)} :
      Matrix.GeneralLinearGroup.IsBorelSubgroup
          H ↔
        ∃ v,
          v ≠ 0 ∧
            H =
              Matrix.GeneralLinearGroup.lineStabilizer
                v
    **The Borel subgroups of `GL₂(F)` are the stabilizers of the lines of `F²`** (LMFDB
    `gl2.borel`), all of them conjugate to the upper triangular subgroup. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/LeastPrimitiveRoot.lean
    complete
    def ZMod.leastPrimitiveRoot (p : ℕ) [Fact (Nat.Prime p)] : ℕ
    def ZMod.leastPrimitiveRoot (p : ℕ)
      [Fact (Nat.Prime p)] : ℕ
    The **least primitive root** modulo a prime `p`: the least positive integer `r` whose class
    generates `(ℤ/pℤ)ˣ`, that is, has multiplicative order `p - 1`. It is the `r` (or `ε`) of
    Sutherland's labels for subgroups of `GL₂(𝔽_p)`; for `p = 2` it is `1`. 
Definition1.64
uses 0
Used by 3
Reverse dependency previews
Preview
Definition 1.68
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Cartan subgroup. (LMFDB)

Let R be a commutative ring. Given a free rank 2 etale R-algebra A equipped with a basis, any a \in A^\times defines an R-linear multiplication-by-a map A \to A, so we get an injective homomorphism A^\times \to \Aut_{\text{R-module}}(A) \simeq \GL_2(R), and the image is called a Cartan subgroup of \GL_2(R). The canonical involution of the R-algebra A gives another element of \Aut_{\text{R-module}}(A); we call the group generated by it and the Cartan subgroup A^\times the extended Cartan subgroup. The Cartan subgroup has index 2 in the extended Cartan subgroup.

If R=\F_p, there are two possibilities for A: the split algebra \F_p \times \F_p and the nonsplit algebra \F_{p^2}; the resulting Cartan subgroups are called split and nonsplit. The extended Cartan subgroup equals the normalizer of the Cartan subgroup in \GL_2(\F_p) except when p=2 and A is split. In the split case, if we use the standard basis of \F_p \times \F_p, the Cartan subgroup is the subgroup of diagonal matrices in \GL_2(\F_p), and the extended Cartan subgroup is this together with the coset of antidiagonal matrices in \GL_2(\F_p).

If R=\Z/p^e\Z, again there are two possibilities for A: the split algebra R \times R, or the nonsplit algebra. The nonsplit algebra can be described as \mathcal{O}/p^e \mathcal{O} where \mathcal{O} is either the degree 2 unramified extension of \Z_p or a quadratic order in which p is inert. The nonsplit algebra can also be described as the ring of length e Witt vectors W_e(\F_{p^2}).

If R=\Z/N\Z for some N \ge 1, then A can be split or nonsplit independently at each prime dividing N.

Lean code for Definition1.64●5 definitions
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Cartan.lean
    complete
    def Matrix.GeneralLinearGroup.cartanSubgroup.{u, v} {R : Type u}
      [CommRing R] {A : Type v} [CommRing A] [Algebra R A]
      (b : Module.Basis (Fin 2) R A) : Subgroup (GL (Fin 2) R)
    def Matrix.GeneralLinearGroup.cartanSubgroup.{u,
        v}
      {R : Type u} [CommRing R] {A : Type v}
      [CommRing A] [Algebra R A]
      (b : Module.Basis (Fin 2) R A) :
      Subgroup (GL (Fin 2) R)
    The **Cartan subgroup** of `GL₂(R)` attached to a free rank-2 `R`-algebra `A` with basis `b`
    (LMFDB `gl2.cartan`): the image of the injective homomorphism `Aˣ → GL₂(R)` sending a unit to the
    matrix of multiplication by it in the basis `b`. The LMFDB asks `A` to be étale, which this
    construction does not need; `IsCartanSubgroup` imposes it. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Cartan.lean
    complete
    def Matrix.GeneralLinearGroup.canonicalInvolution.{u, v} (R : Type u)
      [CommRing R] (A : Type v) [CommRing A] [Algebra R A] : A →ₗ[R] A
    def Matrix.GeneralLinearGroup.canonicalInvolution.{u,
        v}
      (R : Type u) [CommRing R] (A : Type v)
      [CommRing A] [Algebra R A] : A →ₗ[R] A
    The **canonical involution** `x ↦ Tr(x) - x` of an `R`-algebra `A`, where `Tr` is the algebra
    trace. On a free algebra of rank `2` it is an involutive algebra automorphism
    (`canonicalInvolutionAlgEquiv`), the conjugation of `A`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Cartan.lean
    complete
    def Matrix.GeneralLinearGroup.extendedCartanSubgroup.{u, v} {R : Type u}
      [CommRing R] {A : Type v} [CommRing A] [Algebra R A]
      (b : Module.Basis (Fin 2) R A) : Subgroup (GL (Fin 2) R)
    def Matrix.GeneralLinearGroup.extendedCartanSubgroup.{u,
        v}
      {R : Type u} [CommRing R] {A : Type v}
      [CommRing A] [Algebra R A]
      (b : Module.Basis (Fin 2) R A) :
      Subgroup (GL (Fin 2) R)
    The **extended Cartan subgroup** of `GL₂(R)` attached to `A` and its basis `b` (LMFDB
    `gl2.cartan`): the subgroup generated by the Cartan subgroup `cartanSubgroup b` and the matrix of
    the canonical involution of `A`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Cartan.lean
    complete
    def Matrix.GeneralLinearGroup.IsCartanSubgroup.{u} {R : Type u} [CommRing R]
      (H : Subgroup (GL (Fin 2) R)) : Prop
    def Matrix.GeneralLinearGroup.IsCartanSubgroup.{u}
      {R : Type u} [CommRing R]
      (H : Subgroup (GL (Fin 2) R)) : Prop
    A subgroup of `GL₂(R)` is a **Cartan subgroup** (LMFDB `gl2.cartan`) if it is the image
    `cartanSubgroup b` of `Aˣ` for some free rank-2 étale `R`-algebra `A` with a basis `b`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Cartan.lean
    complete
    def Matrix.GeneralLinearGroup.IsExtendedCartanSubgroup.{u} {R : Type u}
      [CommRing R] (H : Subgroup (GL (Fin 2) R)) : Prop
    def Matrix.GeneralLinearGroup.IsExtendedCartanSubgroup.{u}
      {R : Type u} [CommRing R]
      (H : Subgroup (GL (Fin 2) R)) : Prop
    A subgroup of `GL₂(R)` is an **extended Cartan subgroup** (LMFDB `gl2.cartan`) if it is
    `extendedCartanSubgroup b` for some free rank-2 étale `R`-algebra `A` with a basis `b`. 
Definition1.65
Statement uses 2
Statement dependency previews
Preview
Definition 1.63
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Exceptional subgroup. (LMFDB)

An exceptional subgroup of \GL_2(\F_p) does not contain \SL_2(\F_p) and is not contained in a Borel subgroup or in the normalizer of a Cartan subgroup.

Exceptional subgroups are classified according to their image in \PGL_2(\F_p), which must be isomorphic to one of the alternating groups A_4 or A_5, or to the symmetric group S_4. These groups are labelled using identifiers containing one of the strings A4, A5, S4, as described in .

Depends on: Definition 1.63 Definition 1.69

Lean code for Definition1.65●5 definitions
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Exceptional.lean
    complete
    def Matrix.GeneralLinearGroup.IsExceptionalSubgroup {p : ℕ}
      [Fact (Nat.Prime p)] (H : Subgroup (GL (Fin 2) (ZMod p))) : Prop
    def Matrix.GeneralLinearGroup.IsExceptionalSubgroup
      {p : ℕ} [Fact (Nat.Prime p)]
      (H : Subgroup (GL (Fin 2) (ZMod p))) :
      Prop
    A subgroup `H` of `GL₂(𝔽_p)` is **exceptional** (LMFDB `gl2.exceptional`) if it does not contain
    `SL₂(𝔽_p)` (the kernel of the determinant) and is contained neither in a Borel subgroup nor in the
    normalizer of a Cartan subgroup, in the LMFDB's convention (`IsCartanNormalizer`). 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Exceptional.lean
    complete
    def Matrix.GeneralLinearGroup.projectiveImage {p : ℕ} [Fact (Nat.Prime p)]
      (H : Subgroup (GL (Fin 2) (ZMod p))) :
      Subgroup (Matrix.ProjGenLinGroup (Fin 2) (ZMod p))
    def Matrix.GeneralLinearGroup.projectiveImage
      {p : ℕ} [Fact (Nat.Prime p)]
      (H : Subgroup (GL (Fin 2) (ZMod p))) :
      Subgroup
        (Matrix.ProjGenLinGroup (Fin 2)
          (ZMod p))
    The image of a subgroup of `GL₂(𝔽_p)` in `PGL₂(𝔽_p)`. 
  • inductive(3 constructors)defined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Exceptional.lean
    complete
    inductive Matrix.GeneralLinearGroup.ExceptionalType : Type
    inductive Matrix.GeneralLinearGroup.ExceptionalType :
      Type
    The three possible isomorphism types of the image in `PGL₂(𝔽_p)` of an exceptional subgroup,
    named as in Sutherland's labels (LMFDB `gl2.exceptional`). 
    Matrix.GeneralLinearGroup.ExceptionalType.A4 :
      Matrix.GeneralLinearGroup.ExceptionalType
    The image in `PGL₂(𝔽_p)` is isomorphic to the alternating group `A₄`. 
    Matrix.GeneralLinearGroup.ExceptionalType.S4 :
      Matrix.GeneralLinearGroup.ExceptionalType
    The image in `PGL₂(𝔽_p)` is isomorphic to the symmetric group `S₄`. 
    Matrix.GeneralLinearGroup.ExceptionalType.A5 :
      Matrix.GeneralLinearGroup.ExceptionalType
    The image in `PGL₂(𝔽_p)` is isomorphic to the alternating group `A₅`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Exceptional.lean
    complete
    def Matrix.GeneralLinearGroup.HasExceptionalType {p : ℕ}
      [Fact (Nat.Prime p)] (H : Subgroup (GL (Fin 2) (ZMod p))) :
      Matrix.GeneralLinearGroup.ExceptionalType → Prop
    def Matrix.GeneralLinearGroup.HasExceptionalType
      {p : ℕ} [Fact (Nat.Prime p)]
      (H : Subgroup (GL (Fin 2) (ZMod p))) :
      Matrix.GeneralLinearGroup.ExceptionalType →
        Prop
    A subgroup of `GL₂(𝔽_p)` **has exceptional type** `A4`, `S4` or `A5` (LMFDB `gl2.exceptional`)
    if its image in `PGL₂(𝔽_p)` is isomorphic to `A₄`, `S₄` or `A₅` respectively. 
  • defdefined in Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Projective.lean
    complete
    def Matrix.ProjGenLinGroup.{u_1, u_2} (n : Type u_1) [Fintype n]
      [DecidableEq n] (R : Type u_2) [CommRing R] :
      Type (max (max u_1 u_2) u_2 u_1)
    def Matrix.ProjGenLinGroup.{u_1, u_2}
      (n : Type u_1) [Fintype n]
      [DecidableEq n] (R : Type u_2)
      [CommRing R] :
      Type (max (max u_1 u_2) u_2 u_1)
    Projective general linear group $PGL(n, R)$
    defined as the quotient of the general linear group by its center. 
Definition1.66
Statement uses 3
Statement dependency previews
Preview
Definition 1.67
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Index of an open subgroup. (LMFDB)

The index of an open subgroup H of a profinite group G is the positive integer [G:H].

When G is a matrix group over \widehat{\Z} or \Z_{\ell} and H is a subgroup of level N, this is the same as the index of H in the reduction of G modulo N.

Depends on: Definition 1.67 Definition 1.72 Definition 1.73

Lean code for Definition1.66●3 declarations
  • defdefined in Mathlib/GroupTheory/Index.lean
    complete
    def Subgroup.index.{u_1} {G : Type u_1} [Group G] (H : Subgroup G) : ℕ
    def Subgroup.index.{u_1} {G : Type u_1}
      [Group G] (H : Subgroup G) : ℕ
    The index of a subgroup as a natural number. Returns `0` if the index is infinite. 
    
    [Wikidata Q1464168](https://www.wikidata.org/wiki/Q1464168)
  • theoremdefined in Mathlib/Topology/Algebra/OpenSubgroup.lean
    complete
    theorem Subgroup.quotient_finite_of_isOpen.{u_1} {G : Type u_1} [Group G]
      [TopologicalSpace G] [SeparatelyContinuousMul G] [CompactSpace G]
      (U : Subgroup G) (h : IsOpen ↑U) : Finite (G ⧸ U)
    theorem Subgroup.quotient_finite_of_isOpen.{u_1}
      {G : Type u_1} [Group G]
      [TopologicalSpace G]
      [SeparatelyContinuousMul G]
      [CompactSpace G] (U : Subgroup G)
      (h : IsOpen ↑U) : Finite (G ⧸ U)
  • theoremdefined in Mathlib/GroupTheory/Index.lean
    complete
    theorem Subgroup.index_ne_zero_of_finite.{u_1} {G : Type u_1} [Group G]
      {H : Subgroup G} [hH : Finite (G ⧸ H)] : H.index ≠ 0
    theorem Subgroup.index_ne_zero_of_finite.{u_1}
      {G : Type u_1} [Group G]
      {H : Subgroup G} [hH : Finite (G ⧸ H)] :
      H.index ≠ 0
Definition1.67
uses 1
Used by 4
Reverse dependency previews
Preview
Definition 1.66
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Level of an open subgroup. (LMFDB)

The level of an open subgroup H of a matrix group G over \widehat{\Z} is the least positive integer N for which H is equal to the inverse image of its projection to the reduction of G modulo N.

This also applies to open subgroups of matrix groups over \Z_{\ell}, in which case the level is necessarily a power of \ell.

Depends on: Definition 1.72

Lean code for Definition1.67●5 declarations
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Level.lean
    complete
    def Matrix.GeneralLinearGroup.adelicLevel.{u_1} {n : Type u_1} [Fintype n]
      [DecidableEq n] (G H : Subgroup ((ℓ : Nat.Primes) → GL n ℤ_[↑ℓ])) : ℕ
    def Matrix.GeneralLinearGroup.adelicLevel.{u_1}
      {n : Type u_1} [Fintype n]
      [DecidableEq n]
      (G H :
        Subgroup
          ((ℓ : Nat.Primes) → GL n ℤ_[↑ℓ])) :
      ℕ
    The **level** (LMFDB `gl2.level`) of a subgroup `H` of a matrix group
    `G ≤ GL_n(ℤ̂) = ∏_ℓ GL_n(ℤ_ℓ)`: the least positive integer `N` such that `H` is the inverse image in
    `G` of its reduction modulo `N`; for a subgroup of `GL_n(ℤ̂)` itself, `G = ⊤`. It is positive for an
    open subgroup of `G` (`adelicLevel_pos`), and `0` when there is no such `N`, as for a subgroup that
    is not open in `G`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Level.lean
    complete
    def Matrix.GeneralLinearGroup.adelicReduction.{u_1} {n : Type u_1}
      [Fintype n] [DecidableEq n] (N : ℕ) :
      ((ℓ : Nat.Primes) → GL n ℤ_[↑ℓ]) →*
        (ℓ : Nat.Primes) → GL n (ZMod (↑ℓ ^ N.factorization ↑ℓ))
    def Matrix.GeneralLinearGroup.adelicReduction.{u_1}
      {n : Type u_1} [Fintype n]
      [DecidableEq n] (N : ℕ) :
      ((ℓ : Nat.Primes) → GL n ℤ_[↑ℓ]) →*
        (ℓ : Nat.Primes) →
          GL n
            (ZMod (↑ℓ ^ N.factorization ↑ℓ))
    **Reduction modulo `N`** of `GL_n(ℤ̂) = ∏_ℓ GL_n(ℤ_ℓ)`: reduction modulo `ℓ ^ v_ℓ(N)` at each
    prime `ℓ`, with values in `∏_ℓ GL_n(ℤ / ℓ ^ v_ℓ(N) ℤ) = GL_n(ℤ / N ℤ)`. 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Level.lean
    complete
    theorem Matrix.GeneralLinearGroup.adelicLevel_pos.{u_1} {n : Type u_1}
      [Fintype n] [DecidableEq n]
      (G : Subgroup ((ℓ : Nat.Primes) → GL n ℤ_[↑ℓ]))
      {H : Subgroup ((ℓ : Nat.Primes) → GL n ℤ_[↑ℓ])} (hHG : H ≤ G)
      (hH : IsOpen ↑(H.subgroupOf G)) :
      0 < Matrix.GeneralLinearGroup.adelicLevel G H
    theorem Matrix.GeneralLinearGroup.adelicLevel_pos.{u_1}
      {n : Type u_1} [Fintype n]
      [DecidableEq n]
      (G :
        Subgroup
          ((ℓ : Nat.Primes) → GL n ℤ_[↑ℓ]))
      {H :
        Subgroup
          ((ℓ : Nat.Primes) → GL n ℤ_[↑ℓ])}
      (hHG : H ≤ G)
      (hH : IsOpen ↑(H.subgroupOf G)) :
      0 <
        Matrix.GeneralLinearGroup.adelicLevel
          G H
    **The level of an open subgroup of a matrix group over `ℤ̂` is positive.** 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Level.lean
    complete
    def Matrix.GeneralLinearGroup.padicLevel.{u_1} {n : Type u_1} [Fintype n]
      [DecidableEq n] (ℓ : ℕ) [Fact (Nat.Prime ℓ)]
      (G H : Subgroup (GL n ℤ_[ℓ])) : ℕ
    def Matrix.GeneralLinearGroup.padicLevel.{u_1}
      {n : Type u_1} [Fintype n]
      [DecidableEq n] (ℓ : ℕ)
      [Fact (Nat.Prime ℓ)]
      (G H : Subgroup (GL n ℤ_[ℓ])) : ℕ
    The **level** (LMFDB `gl2.level`) of a subgroup `H` of a matrix group `G ≤ GL_n(ℤ_ℓ)`: the least
    positive integer `N` such that `H` is the inverse image in `G` of its reduction modulo `N`, that is,
    `H = G ∩ π_N⁻¹(π_N(H))`; for a subgroup of `GL_n(ℤ_ℓ)` itself, `G = ⊤`. It is a power of `ℓ`
    (`exists_padicLevel_eq_pow`), and positive for an open subgroup of `G` (`padicLevel_pos`). It is
    `0` when there is no such `N`, as for a subgroup that is not open in `G`. 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Level.lean
    complete
    theorem Matrix.GeneralLinearGroup.exists_padicLevel_eq_pow_of_isOpen.{u_1}
      {n : Type u_1} [Fintype n] [DecidableEq n] (ℓ : ℕ)
      [Fact (Nat.Prime ℓ)] (G : Subgroup (GL n ℤ_[ℓ]))
      {H : Subgroup (GL n ℤ_[ℓ])} (hHG : H ≤ G)
      (hH : IsOpen ↑(H.subgroupOf G)) :
      ∃ k, Matrix.GeneralLinearGroup.padicLevel ℓ G H = ℓ ^ k
    theorem Matrix.GeneralLinearGroup.exists_padicLevel_eq_pow_of_isOpen.{u_1}
      {n : Type u_1} [Fintype n]
      [DecidableEq n] (ℓ : ℕ)
      [Fact (Nat.Prime ℓ)]
      (G : Subgroup (GL n ℤ_[ℓ]))
      {H : Subgroup (GL n ℤ_[ℓ])}
      (hHG : H ≤ G)
      (hH : IsOpen ↑(H.subgroupOf G)) :
      ∃ k,
        Matrix.GeneralLinearGroup.padicLevel ℓ
            G H =
          ℓ ^ k
    **The level of an open subgroup of a matrix group over `ℤ_ℓ` is a power of `ℓ`.** 
Definition1.68
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 1.70
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Non-split Cartan subgroup. (LMFDB)

A non-split Cartan subgroup of \GL_2(\F_p) is a Cartan subgroup that is not diagonalizable over \F_p. Every non-split Cartan subgroup is a cyclic group isomorphic to \F_{p^2}^\times.

For p=2 the label Cn identifies the unique index 2 subgroup of \GL_2(\F_2). For p>2 the label Cn identifies the nonsplit Cartan subgroup consisting of matrices of the form

\begin{pmatrix}x&\varepsilon y\\y&x\end{pmatrix},

with x,y\in \F_p not both zero and \varepsilon the least positive integer generating (\Z/p\Z)^\times\simeq \F_p^\times, corresponding to x+y\sqrt{\varepsilon}\in\F_{p^2}^\times. Every non-split Cartan subgroup is conjugate to the group Cn.

Labels of the form Cn.a.b identify the proper subgroup of Cn generated by the matrix

\begin{pmatrix}a&\varepsilon b\\b&a\end{pmatrix},

where a and b are minimally chosen positive integers and \varepsilon is the least positive integer generating (\Z/p\Z)^\times\simeq \F_p^\times, as defined in .

Depends on: Definition 1.64

Lean code for Definition1.68●5 declarations
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Cartan.lean
    complete
    def Matrix.GeneralLinearGroup.IsNonsplitCartanSubgroup.{u} {F : Type u}
      [Field F] (H : Subgroup (GL (Fin 2) F)) : Prop
    def Matrix.GeneralLinearGroup.IsNonsplitCartanSubgroup.{u}
      {F : Type u} [Field F]
      (H : Subgroup (GL (Fin 2) F)) : Prop
    A **non-split Cartan subgroup** of `GL₂(F)` (LMFDB `gl2.nonsplit_cartan`): a Cartan subgroup
    that is not diagonalizable over `F`, that is, no conjugate of which consists of diagonal matrices.
    The LMFDB uses it for `F = 𝔽_p`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/NonsplitCartan.lean
    complete
    def Matrix.GeneralLinearGroup.labelCn (p : ℕ) [Fact (Nat.Prime p)] :
      Subgroup (GL (Fin 2) (ZMod p))
    def Matrix.GeneralLinearGroup.labelCn (p : ℕ)
      [Fact (Nat.Prime p)] :
      Subgroup (GL (Fin 2) (ZMod p))
    The group `Cn` (LMFDB `gl2.nonsplit_cartan`): the Cartan subgroup of the field
    `NonsplitCartanAlgebra p = 𝔽_{p²}` in the basis `(1, ω)`. For `p > 2` it consists of the
    invertible matrices `!![x, ε * y; y, x]` (`mem_labelCn_iff`); for `p = 2` it is the unique
    subgroup of index `2` of `GL₂(𝔽₂)` (`labelCn_two_eq_of_index_eq_two`). 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/NonsplitCartan.lean
    complete
    theorem Matrix.GeneralLinearGroup.mem_labelCn_iff (p : ℕ) [Fact (Nat.Prime p)]
      (hp : p ≠ 2) {g : GL (Fin 2) (ZMod p)} :
      g ∈ Matrix.GeneralLinearGroup.labelCn p ↔
        ↑g 1 1 = ↑g 0 0 ∧ ↑g 0 1 = ↑(ZMod.leastPrimitiveRoot p) * ↑g 1 0
    theorem Matrix.GeneralLinearGroup.mem_labelCn_iff
      (p : ℕ) [Fact (Nat.Prime p)]
      (hp : p ≠ 2) {g : GL (Fin 2) (ZMod p)} :
      g ∈
          Matrix.GeneralLinearGroup.labelCn
            p ↔
        ↑g 1 1 = ↑g 0 0 ∧
          ↑g 0 1 =
            ↑(ZMod.leastPrimitiveRoot p) *
              ↑g 1 0
    **For `p > 2`, `Cn` consists of the invertible matrices `!![x, ε * y; y, x]`**, where `ε` is
    the least primitive root modulo `p`. 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/NonsplitCartan.lean
    complete
    theorem Matrix.GeneralLinearGroup.labelCn_two_eq_of_index_eq_two
      {H : Subgroup (GL (Fin 2) (ZMod 2))} (hH : H.index = 2) :
      H = Matrix.GeneralLinearGroup.labelCn 2
    theorem Matrix.GeneralLinearGroup.labelCn_two_eq_of_index_eq_two
      {H : Subgroup (GL (Fin 2) (ZMod 2))}
      (hH : H.index = 2) :
      H = Matrix.GeneralLinearGroup.labelCn 2
    **`Cn` is the unique subgroup of index `2` of `GL₂(𝔽₂)`**: every element of `Cn` has order
    dividing `3`, so is a square, and a subgroup of index `2` contains all squares. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/NonsplitCartan.lean
    complete
    def Matrix.GeneralLinearGroup.labelCnAB (p : ℕ) [Fact (Nat.Prime p)]
      (a b : ℕ) : Subgroup (GL (Fin 2) (ZMod p))
    def Matrix.GeneralLinearGroup.labelCnAB
      (p : ℕ) [Fact (Nat.Prime p)] (a b : ℕ) :
      Subgroup (GL (Fin 2) (ZMod p))
    The group `Cn.a.b` (LMFDB `gl2.nonsplit_cartan`), for `p > 2`: the subgroup of `Cn` generated by
    the matrix `!![a, ε * b; b, a]`, where `ε` is the least primitive root modulo `p`. 
Definition1.69
uses 1used by 1✓L∃∀N

Normalizer of a Cartan subgroup. (LMFDB)

For p>2 the normalizer of a Cartan subgroup of \GL_2(\F_p) is a maximal subgroup of \GL_2(\F_p) that contains a Cartan subgroup with index 2. It is the normalizer in \GL_2(\F_p) of the Cartan subgroup it contains.

For p=2 the Cartan subgroups of \GL_2(\F_2) are already normal and we instead define the normalizer of a Cartan subgroup to be a group that contains a Cartan subgroup with index 2. This means that the normalizer of a split Cartan subgroup of \GL_2(\F_2) has order 2 (which makes it conjugate to the Borel subgroup), while the normalizer of a non-split Cartan subgroup of \GL_2(\F_2) has order 6 (which makes it all of \GL_2(\F_2)).

Depends on: Definition 1.64

Lean code for Definition1.69●3 declarations
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/CartanNormalizer.lean
    complete
    def Matrix.GeneralLinearGroup.IsCartanNormalizer {p : ℕ}
      [Fact (Nat.Prime p)] (H : Subgroup (GL (Fin 2) (ZMod p))) : Prop
    def Matrix.GeneralLinearGroup.IsCartanNormalizer
      {p : ℕ} [Fact (Nat.Prime p)]
      (H : Subgroup (GL (Fin 2) (ZMod p))) :
      Prop
    A subgroup `H` of `GL₂(𝔽_p)` is the **normalizer of a Cartan subgroup** (LMFDB
    `gl2.normalizer_cartan`) in the LMFDB's convention: for `p > 2`, `H` is the normalizer in
    `GL₂(𝔽_p)` of a Cartan subgroup; for `p = 2`, where Cartan subgroups are normal, `H` contains a
    Cartan subgroup with index `2`. 
  • defdefined in Mathlib/Algebra/Group/Subgroup/Defs.lean
    complete
    def Subgroup.normalizer.{u_1} {G : Type u_1} [Group G] (S : Set G) :
      Subgroup G
    def Subgroup.normalizer.{u_1} {G : Type u_1}
      [Group G] (S : Set G) : Subgroup G
    The `normalizer` of `S` is the subgroup of `G` whose elements satisfy `g * S * g⁻¹ = S`.
    When `S` is a subgroup, this is the largest subgroup of `G` inside which `S` is normal. 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Cartan.lean
    complete
    theorem Matrix.GeneralLinearGroup.extendedCartanSubgroup_le_normalizer.{u, v}
      {R : Type u} [CommRing R] {A : Type v} [CommRing A] [Algebra R A]
      (b : Module.Basis (Fin 2) R A) :
      Matrix.GeneralLinearGroup.extendedCartanSubgroup b ≤
        Subgroup.normalizer ↑(Matrix.GeneralLinearGroup.cartanSubgroup b)
    theorem Matrix.GeneralLinearGroup.extendedCartanSubgroup_le_normalizer.{u,
        v}
      {R : Type u} [CommRing R] {A : Type v}
      [CommRing A] [Algebra R A]
      (b : Module.Basis (Fin 2) R A) :
      Matrix.GeneralLinearGroup.extendedCartanSubgroup
          b ≤
        Subgroup.normalizer
          ↑(Matrix.GeneralLinearGroup.cartanSubgroup
              b)
    **The extended Cartan subgroup normalises the Cartan subgroup.** 
Definition1.70
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 3.15
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Normalizer of a non-split Cartan subgroup. (LMFDB)

For p>2 the normalizer of a non-split Cartan subgroup of \GL_2(\F_p) is a maximal subgroup of \GL_2(\F_p) that contains a non-split Cartan subgroup with index 2, and it is the normalizer in \GL_2(\F_p) of the non-split Cartan subgroup it contains. For p=2 the normalizer of a non-split Cartan subgroup is defined to be all of \GL_2(\F_2), which contains its (already normal) non-split Cartan subgroup with index 2.

For p>2 the label Nn identifies the normalizer of the nonsplit Cartan subgroup generated by the non-split Cartan subgroup Cn and the matrix

\begin{pmatrix}1&0\\0&-1\end{pmatrix},

and every normalizer of a non-split Cartan subgroup is conjugate to the group Nn.

The label Nn.a.b denotes the proper subgroup of the normalizer of the nonsplit Cartan subgroup Nn generated by the matrices

\begin{pmatrix}a&\varepsilon b\\b&a\end{pmatrix}, \begin{pmatrix}1&0\\0&-1\end{pmatrix}.

where a and b are minimally chosen positive integers and \varepsilon is the least positive integer generating (\Z/p\Z)^\times\simeq \F_p^\times, as defined in .

Depends on: Definition 1.68

Lean code for Definition1.70●5 declarations
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/CartanNormalizer.lean
    complete
    def Matrix.GeneralLinearGroup.IsNonsplitCartanNormalizer {p : ℕ}
      [Fact (Nat.Prime p)] (H : Subgroup (GL (Fin 2) (ZMod p))) : Prop
    def Matrix.GeneralLinearGroup.IsNonsplitCartanNormalizer
      {p : ℕ} [Fact (Nat.Prime p)]
      (H : Subgroup (GL (Fin 2) (ZMod p))) :
      Prop
    A subgroup `H` of `GL₂(𝔽_p)` is the **normalizer of a non-split Cartan subgroup** (LMFDB
    `gl2.normalizer_nonsplit_cartan`): for `p > 2`, `H` is the normalizer in `GL₂(𝔽_p)` of a non-split
    Cartan subgroup; for `p = 2`, `H` contains a non-split Cartan subgroup with index `2`, which forces
    `H` to be all of `GL₂(𝔽₂)`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/NonsplitCartan.lean
    complete
    def Matrix.GeneralLinearGroup.labelNn (p : ℕ) [Fact (Nat.Prime p)] :
      Subgroup (GL (Fin 2) (ZMod p))
    def Matrix.GeneralLinearGroup.labelNn (p : ℕ)
      [Fact (Nat.Prime p)] :
      Subgroup (GL (Fin 2) (ZMod p))
    The group `Nn` (LMFDB `gl2.normalizer_nonsplit_cartan`): the extended Cartan subgroup of
    `NonsplitCartanAlgebra p = 𝔽_{p²}` in the basis `(1, ω)`. For `p > 2` it is generated by `Cn` and
    `!![1, 0; 0, -1]` (`labelNn_eq_sup`) and is the normalizer of `Cn` (`labelNn_eq_normalizer`); for
    `p = 2` it is all of `GL₂(𝔽₂)` (`labelNn_two`), as the LMFDB prescribes. 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/NonsplitCartan.lean
    complete
    theorem Matrix.GeneralLinearGroup.labelNn_eq_sup (p : ℕ) [Fact (Nat.Prime p)]
      (hp : p ≠ 2) :
      Matrix.GeneralLinearGroup.labelNn p =
        Matrix.GeneralLinearGroup.labelCn p ⊔
          Subgroup.zpowers (TauCeti.diagGL ![1, -1])
    theorem Matrix.GeneralLinearGroup.labelNn_eq_sup
      (p : ℕ) [Fact (Nat.Prime p)]
      (hp : p ≠ 2) :
      Matrix.GeneralLinearGroup.labelNn p =
        Matrix.GeneralLinearGroup.labelCn p ⊔
          Subgroup.zpowers
            (TauCeti.diagGL ![1, -1])
    **For `p > 2`, `Nn` is generated by `Cn` and `!![1, 0; 0, -1]`.** 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/NonsplitCartan.lean
    complete
    theorem Matrix.GeneralLinearGroup.labelNn_two :
      Matrix.GeneralLinearGroup.labelNn 2 = ⊤
    theorem Matrix.GeneralLinearGroup.labelNn_two :
      Matrix.GeneralLinearGroup.labelNn 2 = ⊤
    **`Nn = GL₂(𝔽₂)`** for `p = 2`: `Cn` has index `2` in both. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/NonsplitCartan.lean
    complete
    def Matrix.GeneralLinearGroup.labelNnAB (p : ℕ) [Fact (Nat.Prime p)]
      (a b : ℕ) : Subgroup (GL (Fin 2) (ZMod p))
    def Matrix.GeneralLinearGroup.labelNnAB
      (p : ℕ) [Fact (Nat.Prime p)] (a b : ℕ) :
      Subgroup (GL (Fin 2) (ZMod p))
    The group `Nn.a.b` (LMFDB `gl2.normalizer_nonsplit_cartan`), for `p > 2`: the subgroup of `Nn`
    generated by the matrices `!![a, ε * b; b, a]` and `!![1, 0; 0, -1]`, where `ε` is the least
    primitive root modulo `p`. 
Definition1.71
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 3.15
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Normalizer of a split Cartan subgroup. (LMFDB)

The normalizer of a split Cartan subgroup of \GL_2(\F_p) is a maximal subgroup of \GL_2(\F_p) that contains a split Cartan subgroup with index 2. For p>2 such a group is in fact the normalizer in \GL_2(\F_p) of the split Cartan subgroup it contains, but for p=2 this is not the case (the split Cartan subgroup of \GL_2(\F_2) is already normal).

The label Ns identifies the subgroup generated by the split Cartan subgroup Cs of diagonal matrices and the matrix

\begin{pmatrix}0&1\\1&0\end{pmatrix}.

Every normalizer of a split Cartan subgroup is conjugate to the group Ns.

The label Ns.a.b identifies the proper subgroup of Ns generated by the matrices

\begin{pmatrix}a&0\\0&1/a\end{pmatrix}, \begin{pmatrix}0&b\\-r/b&0\end{pmatrix},

where a and b are minimally chosen positive integers and r is the least positive integer generating (\Z/p\Z)^\times\simeq \F_p^\times.

The label Ns.a.b.c identifies the proper subgroup of the normalizer of the split Cartan subgroup generated by the matrices

\begin{pmatrix}a&0\\0&1/a\end{pmatrix}, \begin{pmatrix}0&b\\-1/b&0\end{pmatrix}, \begin{pmatrix}0&c\\-r/c&0\end{pmatrix}

where a and b are minimally chosen positive integers and r is the least positive integer generating (\Z/p\Z)^\times\simeq \F_p^\times, as defined in .

Depends on: Definition 1.74

Lean code for Definition1.71●5 declarations
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/CartanNormalizer.lean
    complete
    def Matrix.GeneralLinearGroup.IsSplitCartanNormalizer {p : ℕ}
      [Fact (Nat.Prime p)] (H : Subgroup (GL (Fin 2) (ZMod p))) : Prop
    def Matrix.GeneralLinearGroup.IsSplitCartanNormalizer
      {p : ℕ} [Fact (Nat.Prime p)]
      (H : Subgroup (GL (Fin 2) (ZMod p))) :
      Prop
    A subgroup `H` of `GL₂(𝔽_p)` is the **normalizer of a split Cartan subgroup** (LMFDB
    `gl2.normalizer_split_cartan`): for `p > 2`, `H` is the normalizer in `GL₂(𝔽_p)` of a split Cartan
    subgroup; for `p = 2`, where the split Cartan subgroup is trivial and hence normal, `H` contains a
    split Cartan subgroup with index `2`, so has order `2`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/SplitCartan.lean
    complete
    def Matrix.GeneralLinearGroup.labelNs (p : ℕ) :
      Subgroup (GL (Fin 2) (ZMod p))
    def Matrix.GeneralLinearGroup.labelNs
      (p : ℕ) : Subgroup (GL (Fin 2) (ZMod p))
    The group `Ns` (LMFDB `gl2.normalizer_split_cartan`): the subgroup of `GL₂(𝔽_p)` generated by
    the split Cartan subgroup `Cs` of diagonal matrices and the matrix `!![0, 1; 1, 0]`. It is the
    extended Cartan subgroup of `𝔽_p × 𝔽_p` (`labelNs_eq_extendedCartanSubgroup`), the normalizer of
    `Cs` for `p > 2` (`labelNs_eq_normalizer`), and a group of order `2` for `p = 2`. 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/SplitCartan.lean
    complete
    theorem Matrix.GeneralLinearGroup.isSplitCartanNormalizer_labelNs (p : ℕ)
      [Fact (Nat.Prime p)] :
      Matrix.GeneralLinearGroup.IsSplitCartanNormalizer
        (Matrix.GeneralLinearGroup.labelNs p)
    theorem Matrix.GeneralLinearGroup.isSplitCartanNormalizer_labelNs
      (p : ℕ) [Fact (Nat.Prime p)] :
      Matrix.GeneralLinearGroup.IsSplitCartanNormalizer
        (Matrix.GeneralLinearGroup.labelNs p)
    **`Ns` is the normalizer of a split Cartan subgroup** of `GL₂(𝔽_p)` in the LMFDB's sense, for
    every prime `p`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/SplitCartan.lean
    complete
    def Matrix.GeneralLinearGroup.labelNsAB (p a b : ℕ) [Fact (Nat.Prime p)] :
      Subgroup (GL (Fin 2) (ZMod p))
    def Matrix.GeneralLinearGroup.labelNsAB
      (p a b : ℕ) [Fact (Nat.Prime p)] :
      Subgroup (GL (Fin 2) (ZMod p))
    The group `Ns.a.b` (LMFDB `gl2.normalizer_split_cartan`): the subgroup of `Ns` generated by the
    matrices `!![a, 0; 0, 1/a]` and `!![0, b; -r/b, 0]`, where `r` is the least primitive root
    modulo `p`. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/SplitCartan.lean
    complete
    def Matrix.GeneralLinearGroup.labelNsABC (p a b c : ℕ)
      [Fact (Nat.Prime p)] : Subgroup (GL (Fin 2) (ZMod p))
    def Matrix.GeneralLinearGroup.labelNsABC
      (p a b c : ℕ) [Fact (Nat.Prime p)] :
      Subgroup (GL (Fin 2) (ZMod p))
    The group `Ns.a.b.c` (LMFDB `gl2.normalizer_split_cartan`): the subgroup of `Ns` generated by
    the matrices `!![a, 0; 0, 1/a]`, `!![0, b; -1/b, 0]` and `!![0, c; -r/c, 0]`, where `r` is the
    least primitive root modulo `p`. 
Definition1.72
uses 1
Used by 7
Reverse dependency previews
Preview
Definition 1.66
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Open subgroup. (LMFDB)

An open subgroup H of a profinite group G is a subgroup that is open in the topology of G, which implies that it is equal to the inverse image of its projection to a a finite quotient of G.

Open subgroups of G necessarily have finite index (since G is compact), but not every finite index subgroup of G is necessarily open.

When the profinite group G is a matrix group over a ring R that is equipped with canonical projections to finite rings of the form \Z/n\Z (take R=\Z_{\ell} or R=\widehat{\Z}, for example), we use G(n) to denote the image of G under the group homomorphism induced by the projection R\to\Z/n\Z. In this situation we may identify H with its projection to G(N), where N is the least positive integer for which H is the inverse image of its projection to G(N) (this N is the level of H).

Depends on: Definition 1.73

Lean code for Definition1.72●1 definition
  • structure(extends 3, 5 fields)defined in Mathlib/Topology/Algebra/OpenSubgroup.lean
    complete
    structure OpenSubgroup.{u_1} (G : Type u_1) [Group G] [TopologicalSpace G] :
      Type u_1
    structure OpenSubgroup.{u_1} (G : Type u_1)
      [Group G] [TopologicalSpace G] :
      Type u_1
    The type of open subgroups of a topological group. 
    • Subgroup G
    carrier : Set G
    Inherited from
    1. Subgroup
    2. Submonoid
    3. Subsemigroup
    mul_mem' : ∀ {a b : G}, a ∈ (↑self).carrier → b ∈ (↑self).carrier → a * b ∈ (↑self).carrier
    Inherited from
    1. Subgroup
    2. Submonoid
    3. Subsemigroup
    one_mem' : 1 ∈ (↑self).carrier
    Inherited from
    1. Subgroup
    2. Submonoid
    inv_mem' : ∀ {x : G}, x ∈ (↑self).carrier → x⁻¹ ∈ (↑self).carrier
    Inherited from
    1. Subgroup
    isOpen' : IsOpen (↑self).carrier
Definition1.73
uses 0
Used by 2
Reverse dependency previews
Preview
Definition 1.66
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Profinite group. (LMFDB)

A profinite group is a compact totally disconnected topological group. Equivalently, it is the inverse limit of a system of finite groups equipped with the discrete topology.

For example, if we take the finite groups \GL_2(\Z/n\Z) as n varies over positive integers, order them by divisibility of n and consider the inverse system equipped with reduction maps \GL_2(\Z/n\Z)\to \GL_2(\Z/m\Z) for all positive integers m|n, then the inverse limit

\lim_{\overset{\longleftarrow}{n}} \GL_2(\Z/n\Z) \simeq \GL_2(\widehat{\Z})

is a profinite group which is isomorphic to the group of invertible 2\times 2 matrices over the topological ring \widehat{\Z}, which is the inverse limit of the finite rings \Z/n\Z equipped with the discrete topology.

Lean code for Definition1.73●1 definition
  • structure(3 fields)defined in Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean
    complete
    structure ProfiniteGrp.{u} : Type (u + 1)
    structure ProfiniteGrp.{u} : Type (u + 1)
    The category of profinite groups. A term of this type consists of a profinite
    set with a topological group structure.
    
    toProfinite : Profinite
    The underlying profinite topological space. 
    group : Group ↑self.toProfinite.toTop
    The group structure. 
    isTopologicalGroup : IsTopologicalGroup ↑self.toProfinite.toTop
    The above data together form a topological group. 
Definition1.74
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 1.71
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Split Cartan subgroup. (LMFDB)

A split Cartan subgroup of \GL_2(\F_p) is a Cartan subgroup that is diagonalizable over \F_p. Every split Cartan subgroup is conjugate to the subgroup of diagonal matrices, which is isomorphic to \F_p^\times\times\F_p^\times.

The label Cs identifies the split Cartan subgroup of diagonal matrices.

The label Cs.a.b identifies the proper subgroup of Cs generated by

\begin{pmatrix}a&0\\0&1/a\end{pmatrix}, \begin{pmatrix}b&0\\0&r/b\end{pmatrix},

where a and b are minimally chosen positive integers and r is the least positive integer generating (\Z/p\Z)^\times\simeq \F_p^\times, as defined in .

Depends on: Definition 1.64

Lean code for Definition1.74●5 declarations
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/Cartan.lean
    complete
    def Matrix.GeneralLinearGroup.IsSplitCartanSubgroup.{u} {F : Type u}
      [Field F] (H : Subgroup (GL (Fin 2) F)) : Prop
    def Matrix.GeneralLinearGroup.IsSplitCartanSubgroup.{u}
      {F : Type u} [Field F]
      (H : Subgroup (GL (Fin 2) F)) : Prop
    A **split Cartan subgroup** of `GL₂(F)` (LMFDB `gl2.split_cartan`): a Cartan subgroup that is
    diagonalizable over `F`, that is, has a conjugate consisting of diagonal matrices. The LMFDB uses
    it for `F = 𝔽_p`. 
  • defdefined in TauCeti/LinearAlgebra/Matrix/GeneralLinearGroup/Diagonal/Basic.lean
    complete
    def TauCeti.diagonalTorus.{u} (k : Type u) [Semiring k] (n : ℕ) :
      Subgroup (GL (Fin n) k)
    def TauCeti.diagonalTorus.{u} (k : Type u)
      [Semiring k] (n : ℕ) :
      Subgroup (GL (Fin n) k)
    The **diagonal torus** of `GL n k`: the image of the coordinatewise units under `diagGL`. 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/SplitCartan.lean
    complete
    theorem Matrix.GeneralLinearGroup.cartanSubgroup_piBasisFun.{u_1} (R : Type u_1)
      [CommRing R] :
      Matrix.GeneralLinearGroup.cartanSubgroup (Pi.basisFun R (Fin 2)) =
        TauCeti.diagonalTorus R 2
    theorem Matrix.GeneralLinearGroup.cartanSubgroup_piBasisFun.{u_1}
      (R : Type u_1) [CommRing R] :
      Matrix.GeneralLinearGroup.cartanSubgroup
          (Pi.basisFun R (Fin 2)) =
        TauCeti.diagonalTorus R 2
    **The Cartan subgroup of the split algebra `R × R`**, in its standard basis, is the group of
    invertible diagonal matrices. 
  • theoremdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/SplitCartan.lean
    complete
    theorem Matrix.GeneralLinearGroup.isSplitCartanSubgroup_diagonalTorus.{u_2}
      (F : Type u_2) [Field F] :
      Matrix.GeneralLinearGroup.IsSplitCartanSubgroup
        (TauCeti.diagonalTorus F 2)
    theorem Matrix.GeneralLinearGroup.isSplitCartanSubgroup_diagonalTorus.{u_2}
      (F : Type u_2) [Field F] :
      Matrix.GeneralLinearGroup.IsSplitCartanSubgroup
        (TauCeti.diagonalTorus F 2)
    **The group of diagonal matrices is a split Cartan subgroup** of `GL₂(F)`: it is the Cartan
    subgroup of the étale algebra `F × F` in its standard basis. 
  • defdefined in LeanBridge/ForMathlib/LinearAlgebra/Matrix/GL2/SplitCartan.lean
    complete
    def Matrix.GeneralLinearGroup.labelCsAB (p a b : ℕ) [Fact (Nat.Prime p)] :
      Subgroup (GL (Fin 2) (ZMod p))
    def Matrix.GeneralLinearGroup.labelCsAB
      (p a b : ℕ) [Fact (Nat.Prime p)] :
      Subgroup (GL (Fin 2) (ZMod p))
    The group `Cs.a.b` (LMFDB `gl2.split_cartan`): the subgroup of `Cs` generated by the matrices
    `!![a, 0; 0, 1/a]` and `!![b, 0; 0, r/b]`, where `r` is the least primitive root modulo `p`. A
    listed matrix that is not invertible (`p ∣ a` or `p ∣ b`) is not among the generators; the label
    uses minimal positive integers `a` and `b`, which avoids this. 
Definition1.75
Statement uses 4
Statement dependency previews
Preview
Definition 1.29
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 16
Reverse dependency previews
Preview
Definition 1.76
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Definition of group. (LMFDB)

A group \langle G, *\rangle is a set G with a binary operation * such that

  1. * is associative

  2. * has an identity element

  3. every element g\in G has an inverse.

Depends on: Definition 1.29 Definition 1.30 Definition 1.32 Definition 1.33

Lean code for Definition1.75●1 definition
  • class(extends 11, 16 methods)defined in Mathlib/Algebra/Group/Defs.lean
    complete
    class Group.{u_2} (G : Type u_2) : Type u_2
    class Group.{u_2} (G : Type u_2) : Type u_2
    A `Group` is a `Monoid` with an operation `⁻¹` satisfying `a⁻¹ * a = 1`.
    
    There is also a division operation `/` such that `a / b = a * b⁻¹`,
    with a default so that `a / b = a * b⁻¹` holds by definition.
    
    Use `Group.ofLeftAxioms` or `Group.ofRightAxioms` to define a group structure
    on a type with the minimum proof obligations.
    
    
    [Wikidata Q83478](https://www.wikidata.org/wiki/Q83478)
    • DivInvMonoid G
    one : G
    Inherited from
    1. DivInvMonoid
    2. Monoid
    3. One
    mul : G → G → G
    Inherited from
    1. DivInvMonoid
    2. Monoid
    3. Mul
    mul_assoc : ∀ (a b c : G), a * b * c = a * (b * c)
    Inherited from
    1. DivInvMonoid
    2. Monoid
    one_mul : ∀ (a : G), 1 * a = a
    Inherited from
    1. DivInvMonoid
    2. Monoid
    mul_one : ∀ (a : G), a * 1 = a
    Inherited from
    1. DivInvMonoid
    2. Monoid
    npow : ℕ → G → G
    Inherited from
    1. DivInvMonoid
    2. Monoid
    3. NPow
    npow_zero : ∀ (x : G), x ^ 0 = 1
    Inherited from
    1. DivInvMonoid
    2. Monoid
    npow_succ : ∀ (n : ℕ) (x : G), x ^ (n + 1) = x ^ n * x
    Inherited from
    1. DivInvMonoid
    2. Monoid
    inv : G → G
    Inherited from
    1. DivInvMonoid
    2. Inv
    div : G → G → G
    Inherited from
    1. DivInvMonoid
    2. Div
    zpow : ℤ → G → G
    Inherited from
    1. DivInvMonoid
    2. ZPow
    div_eq_mul_inv : ∀ (a b : G), a / b = a * b⁻¹
    Inherited from
    1. DivInvMonoid
    zpow_zero' : ∀ (a : G), a ^ 0 = 1
    Inherited from
    1. DivInvMonoid
    zpow_succ' : ∀ (n : ℕ) (a : G), a ^ ↑n.succ = a ^ ↑n * a
    Inherited from
    1. DivInvMonoid
    zpow_neg' : ∀ (n : ℕ) (a : G), a ^ Int.negSucc n = (a ^ ↑n.succ)⁻¹
    Inherited from
    1. DivInvMonoid
    inv_mul_cancel : ∀ (a : G), a⁻¹ * a = 1
Definition1.76
Statement uses 3
Statement dependency previews
Preview
Definition 1.29
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 4
Reverse dependency previews
Preview
Definition 1.99
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Abelian group. (LMFDB)

A group is abelian if its operation is commutative.

Depends on: Definition 1.29 Definition 1.31 Definition 1.75

Lean code for Definition1.76●1 definition
  • class(extends 15, 17 methods)defined in Mathlib/Algebra/Group/Defs.lean
    complete
    class CommGroup.{u_2} (G : Type u_2) : Type u_2
    class CommGroup.{u_2} (G : Type u_2) : Type u_2
    A commutative group is a group with commutative `(*)`. 
    
    [Wikidata Q181296](https://www.wikidata.org/wiki/Q181296)
    • Group G
    • CommMonoid G
    one : G
    Inherited from
    1. Group
    2. DivInvMonoid
    3. Monoid
    4. One
    mul : G → G → G
    Inherited from
    1. Group
    2. DivInvMonoid
    3. Monoid
    4. Mul
    mul_assoc : ∀ (a b c : G), a * b * c = a * (b * c)
    Inherited from
    1. Group
    2. DivInvMonoid
    3. Monoid
    one_mul : ∀ (a : G), 1 * a = a
    Inherited from
    1. Group
    2. DivInvMonoid
    3. Monoid
    mul_one : ∀ (a : G), a * 1 = a
    Inherited from
    1. Group
    2. DivInvMonoid
    3. Monoid
    npow : ℕ → G → G
    Inherited from
    1. Group
    2. DivInvMonoid
    3. Monoid
    4. NPow
    npow_zero : ∀ (x : G), x ^ 0 = 1
    Inherited from
    1. Group
    2. DivInvMonoid
    3. Monoid
    npow_succ : ∀ (n : ℕ) (x : G), x ^ (n + 1) = x ^ n * x
    Inherited from
    1. Group
    2. DivInvMonoid
    3. Monoid
    inv : G → G
    Inherited from
    1. Group
    2. DivInvMonoid
    3. Inv
    div : G → G → G
    Inherited from
    1. Group
    2. DivInvMonoid
    3. Div
    zpow : ℤ → G → G
    Inherited from
    1. Group
    2. DivInvMonoid
    3. ZPow
    div_eq_mul_inv : ∀ (a b : G), a / b = a * b⁻¹
    Inherited from
    1. Group
    2. DivInvMonoid
    zpow_zero' : ∀ (a : G), a ^ 0 = 1
    Inherited from
    1. Group
    2. DivInvMonoid
    zpow_succ' : ∀ (n : ℕ) (a : G), a ^ ↑n.succ = a ^ ↑n * a
    Inherited from
    1. Group
    2. DivInvMonoid
    zpow_neg' : ∀ (n : ℕ) (a : G), a ^ Int.negSucc n = (a ^ ↑n.succ)⁻¹
    Inherited from
    1. Group
    2. DivInvMonoid
    inv_mul_cancel : ∀ (a : G), a⁻¹ * a = 1
    Inherited from
    1. Group
    mul_comm : ∀ (a b : G), a * b = b * a
    Multiplication is commutative in a commutative multiplicative magma. 
Definition1.77
Statement uses 2
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.78
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Automorphisms of a group. (LMFDB)

If G is a group, an automorphism of G is a group isomorphism f:G\to G.

The set of automorphisms of G, \Aut(G), is a group under composition.

Depends on: Definition 1.75 Definition 1.88

Lean code for Definition1.77●1 definition
  • abbrevdefined in Mathlib/Algebra/Group/End.lean
    complete
    abbrev MulAut.{u_7} (M : Type u_7) [Mul M] : Type u_7
    abbrev MulAut.{u_7} (M : Type u_7) [Mul M] :
      Type u_7
    The group of multiplicative automorphisms. 
Definition1.78
Statement uses 3
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Characteristic subgroup. (LMFDB)

A subgroup H of a group G is a characteristic subgroup if \phi(H)=H for all automorphisms \phi\in \Aut(G).

Depends on: Definition 1.75 Definition 1.77 Definition 1.95

Lean code for Definition1.78●1 definition
  • class(1 method)defined in Mathlib/Algebra/Group/Subgroup/Basic.lean
    complete
    class Subgroup.Characteristic.{u_1} {G : Type u_1} [Group G]
      (H : Subgroup G) : Prop
    class Subgroup.Characteristic.{u_1}
      {G : Type u_1} [Group G]
      (H : Subgroup G) : Prop
    A subgroup is characteristic if it is fixed by all automorphisms.
    Several equivalent conditions are provided by lemmas of the form `Characteristic.iff...` 
    fixed : ∀ (ϕ : G ≃* G), Subgroup.comap ϕ.toMonoidHom H = H
    `H` is fixed by all automorphisms 
Definition1.79
Statement uses 2
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.96
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Coset of a subgroup. (LMFDB)

If G is a group and H is a subgroup of G, then a left coset of H is a set

gH = \{ gh \mid h \in H\}

and similarly, a right coset of H is a set

Hg = \{ hg \mid h \in H\}.

The left cosets partition G, as do the right cosets.

Depends on: Definition 1.75 Definition 1.95

Lean code for Definition1.79●4 declarations
  • defdefined in Mathlib/GroupTheory/Coset/Defs.lean
    complete
    def QuotientGroup.leftRel.{u_1} {α : Type u_1} [Group α] (s : Subgroup α) :
      Setoid α
    def QuotientGroup.leftRel.{u_1} {α : Type u_1}
      [Group α] (s : Subgroup α) : Setoid α
    The equivalence relation corresponding to the partition of a group by left cosets
    of a subgroup. 
  • defdefined in Mathlib/GroupTheory/Coset/Defs.lean
    complete
    def QuotientGroup.rightRel.{u_1} {α : Type u_1} [Group α] (s : Subgroup α) :
      Setoid α
    def QuotientGroup.rightRel.{u_1}
      {α : Type u_1} [Group α]
      (s : Subgroup α) : Setoid α
    The equivalence relation corresponding to the partition of a group by right cosets of a
    subgroup. 
  • theoremdefined in Mathlib/GroupTheory/Coset/Basic.lean
    complete
    theorem QuotientGroup.eq_class_eq_leftCoset.{u_1} {α : Type u_1} [Group α]
      (s : Subgroup α) (g : α) : {x | ↑x = ↑g} = g • ↑s
    theorem QuotientGroup.eq_class_eq_leftCoset.{u_1}
      {α : Type u_1} [Group α]
      (s : Subgroup α) (g : α) :
      {x | ↑x = ↑g} = g • ↑s
  • theoremdefined in Mathlib/GroupTheory/Coset/Basic.lean
    complete
    theorem QuotientGroup.rightRel_r_eq_rightCosetEquivalence.{u_1} {α : Type u_1}
      [Group α] (s : Subgroup α) :
      ⇑(QuotientGroup.rightRel s) = RightCosetEquivalence ↑s
    theorem QuotientGroup.rightRel_r_eq_rightCosetEquivalence.{u_1}
      {α : Type u_1} [Group α]
      (s : Subgroup α) :
      ⇑(QuotientGroup.rightRel s) =
        RightCosetEquivalence ↑s
Definition1.80
Statement uses 3
Statement dependency previews
Preview
Definition 1.78
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Frattini subgroup of a group. (LMFDB)

If G is a group, then the Frattini subgroup of G, denoted \Phi(G), is the intersection of all maximal subgroups of G. If there are no maximal subgroups of G, then \Phi(G)=G.

The Frattini subgroup is always a characteristic subgroup, hence a normal subgroup, of G.

Depends on: Definition 1.78 Definition 1.89 Definition 1.97

Lean code for Definition1.80●1 definition
  • defdefined in Mathlib/GroupTheory/Frattini.lean
    complete
    def frattini.{u_1} (G : Type u_1) [Group G] : Subgroup G
    def frattini.{u_1} (G : Type u_1) [Group G] :
      Subgroup G
    The Frattini subgroup of a group is the intersection of the maximal subgroups. 
Definition1.81
uses 1
Used by 5
Reverse dependency previews
Preview
Definition 1.82
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Cusps of a subgroup of the modular group. (LMFDB)

The cusps of a subgroup \Gamma of the modular group are equivalence classes of points in \mathbb{Q}\cup\infty under the action of \Gamma by linear fractional transformation, where for

\gamma=\left(\begin{array}{ll}a&b\\c&d \end{array}\right)\in\Gamma,

we define \gamma\infty = \frac{a}{c} when c\neq 0, and \gamma\infty = \infty when c=0.

Depends on: Definition 1.94

Lean code for Definition1.81●4 declarations
  • abbrevdefined in Mathlib/NumberTheory/ModularForms/Cusps.lean
    complete
    abbrev CuspOrbits (𝒢 : Subgroup (GL (Fin 2) ℝ)) : Type
    abbrev CuspOrbits (𝒢 : Subgroup (GL (Fin 2) ℝ)) :
      Type
    The type of cusp orbits of `𝒢`, i.e. orbits for the action of `𝒢` on its own cusps. 
  • defdefined in Mathlib/NumberTheory/ModularForms/Cusps.lean
    complete
    def IsCusp (c : OnePoint ℝ) (𝒢 : Subgroup (GL (Fin 2) ℝ)) : Prop
    def IsCusp (c : OnePoint ℝ)
      (𝒢 : Subgroup (GL (Fin 2) ℝ)) : Prop
    The *cusps* of a subgroup of `GL(2, ℝ)` are the fixed points of parabolic elements of `g`. 
  • theoremdefined in Mathlib/NumberTheory/ModularForms/Cusps.lean
    complete
    theorem Subgroup.IsArithmetic.isCusp_iff_isCusp_SL2Z
      (𝒢 : Subgroup (GL (Fin 2) ℝ)) [𝒢.IsArithmetic] {c : OnePoint ℝ} :
      IsCusp c 𝒢 ↔ IsCusp c (Matrix.SpecialLinearGroup.mapGL ℝ).range
    theorem Subgroup.IsArithmetic.isCusp_iff_isCusp_SL2Z
      (𝒢 : Subgroup (GL (Fin 2) ℝ))
      [𝒢.IsArithmetic] {c : OnePoint ℝ} :
      IsCusp c 𝒢 ↔
        IsCusp c
          (Matrix.SpecialLinearGroup.mapGL
              ℝ).range
    The cusps of any arithmetic subgroup are the same as those of `SL(2, ℤ)`. 
  • theoremdefined in Mathlib/NumberTheory/ModularForms/Cusps.lean
    complete
    theorem isCusp_SL2Z_iff {c : OnePoint ℝ} :
      IsCusp c (Matrix.SpecialLinearGroup.mapGL ℝ).range ↔
        c ∈ Set.range (OnePoint.map Rat.cast)
    theorem isCusp_SL2Z_iff {c : OnePoint ℝ} :
      IsCusp c
          (Matrix.SpecialLinearGroup.mapGL
              ℝ).range ↔
        c ∈ Set.range (OnePoint.map Rat.cast)
    The cusps of `SL(2, ℤ)` are precisely the elements of `ℙ¹(ℚ)`. 
Definition1.82
Statement uses 2
Statement dependency previews
Preview
Definition 1.81
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Width of a cusp. (LMFDB)

The width of the cusp \infty for the group \Gamma is the smallest number w such that T^w=\left(\begin{matrix}1&w\\0&1\end{matrix}\right)\in\Gamma. Furthermore, for a general x\in\mathbb{P}^1(\mathbb{Q}) and \gamma\in\Gamma such that \gamma\infty=x, we define the width of x for \Gamma to be the width of \infty for \gamma^{-1}\Gamma\gamma.

Note that T=\left(\begin{matrix}1&1\\0&1\end{matrix}\right) is one of the generators of the modular group \textrm{SL}_2(\mathbb{Z}).

Depends on: Definition 1.81 Definition 1.94

Lean code for Definition1.82●2 definitions
  • defdefined in TauCeti/NumberTheory/ModularForms/Norm/Cusps.lean
    complete
    def TauCeti.ModularForm.cuspTranslationOrbitWidth
      {𝒢 : Subgroup (GL (Fin 2) ℝ)}
      (c : TauCeti.ModularForm.CuspTranslationOrbit 𝒢) : ℕ
    def TauCeti.ModularForm.cuspTranslationOrbitWidth
      {𝒢 : Subgroup (GL (Fin 2) ℝ)}
      (c :
        TauCeti.ModularForm.CuspTranslationOrbit
          𝒢) :
      ℕ
    The **width** of a cusp translation orbit of `𝒢`: the period of the `T`-action. Under
    `[𝒢.IsFiniteRelIndex 𝒮ℒ]`, `minimalPeriod_TSL_dvd_iff` and
    `cuspTranslationOrbitWidth_mk` identify it with the least `m > 0` such that
    `x⁻¹ T ^ m x ∈ 𝒢` for any representative `x` of the orbit. 
  • defdefined in TauCeti/NumberTheory/ModularForms/Cusps/Basic.lean
    complete
    def TauCeti.Subgroup.integerCuspWidth (𝒢 : Subgroup (GL (Fin 2) ℝ)) : ℕ
    def TauCeti.Subgroup.integerCuspWidth
      (𝒢 : Subgroup (GL (Fin 2) ℝ)) : ℕ
    The `MulAction.period` of the coset of `T` acting on the base coset of
    `𝒮ℒ ⧸ 𝒢 ⊓ 𝒮ℒ`. When some positive power of `T` lies in `𝒢` — in particular whenever
    `𝒢` has finite relative index in `𝒮ℒ`, see `Subgroup.integerCuspWidth_pos` — this is
    the smallest positive integer `n` such that the upper-triangular matrix `[1, n; 0, 1]`
    lies in `𝒢`; otherwise it is `0`. 
Definition1.83
uses 1used by 1✓L∃∀N

Fundamental domain. (LMFDB)

If G\subseteq\Gamma is a subgroup of the modular group, then a closed set F\in\mathcal{H}\cup\mathbb{Q}\cup\{\infty\} is said to be a fundamental domain for G if: <ol> <li> For any point z\in\mathcal{H} there is a g\in G such that gz\in F.</li> <li> If z\not=z'\in F are equivalent with respect to the action of G, that is, if z'=gz for some g\in G, then z and z' belong to \partial F, the boundary of F.</li> </ol>

Depends on: Definition 1.94

Lean code for Definition1.83●4 declarations
  • structure(3 fields)defined in LeanBridge/ForMathlib/NumberTheory/ModularCurve/FundamentalDomain.lean
    complete
    structure ModularGroup.IsFundamentalDomain
      (G : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ))
      (F : Set UpperHalfPlane.Completed) : Prop
    structure ModularGroup.IsFundamentalDomain
      (G :
        Subgroup
          (Matrix.SpecialLinearGroup (Fin 2)
            ℤ))
      (F : Set UpperHalfPlane.Completed) :
      Prop
    A set `F ⊆ ℍ* = ℍ ∪ ℚ ∪ {∞}` is a **fundamental domain** for a subgroup `G` of `SL(2, ℤ)`
    (LMFDB `group.fuchsian.fundamental_domain`) if it is closed in the completed upper half-plane
    `ℍ*`, every point of `ℍ` is moved into `F` by an element of `G`, and two distinct points of `F` that
    are `G`-equivalent both lie on the boundary of `F`
    (`ModularGroup.IsFundamentalDomain.mem_frontier` and
    `ModularGroup.IsFundamentalDomain.smul_mem_frontier`). 
    isClosed : IsClosed F
    A fundamental domain is closed. 
    exists_smul_mem : ∀ (z : UpperHalfPlane), ∃ g ∈ G, g • UpperHalfPlane.Completed.ofUpperHalfPlane z ∈ F
    Every point of `ℍ` is `G`-equivalent to a point of a fundamental domain. 
    mem_frontier : ∀ {z : UpperHalfPlane.Completed} {g : Matrix.SpecialLinearGroup (Fin 2) ℤ},
      z ∈ F → g ∈ G → g • z ∈ F → g • z ≠ z → z ∈ frontier F
    A point of a fundamental domain that is `G`-equivalent to another point of it lies on its
    boundary. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularCurve/FundamentalDomain.lean
    complete
    theorem ModularGroup.isFundamentalDomain_fd :
      ModularGroup.IsFundamentalDomain ⊤
        (UpperHalfPlane.Completed.ofUpperHalfPlane '' ModularGroup.fd ∪
          {UpperHalfPlane.Completed.cusp OnePoint.infty})
    theorem ModularGroup.isFundamentalDomain_fd :
      ModularGroup.IsFundamentalDomain ⊤
        (UpperHalfPlane.Completed.ofUpperHalfPlane ''
            ModularGroup.fd ∪
          {UpperHalfPlane.Completed.cusp
              OnePoint.infty})
    **The standard domain `𝒟`, together with the cusp `∞`, is a fundamental domain for
    `SL(2, ℤ)`**: every point of `ℍ` can be moved into `𝒟`, and an element of `SL(2, ℤ)` moving a point
    of the interior `𝒟ᵒ` into `𝒟` is `±1`. 
  • defdefined in Mathlib/NumberTheory/Modular.lean
    complete
    def ModularGroup.fd : Set UpperHalfPlane
    def ModularGroup.fd : Set UpperHalfPlane
    The standard (closed) fundamental domain of the action of `SL(2,ℤ)` on `ℍ`. 
  • inductive(2 constructors)defined in LeanBridge/ForMathlib/Analysis/Complex/UpperHalfPlane/Completed.lean
    complete
    inductive UpperHalfPlane.Completed : Type
    inductive UpperHalfPlane.Completed : Type
    The **completed upper half-plane** `ℍ* = ℍ ∪ ℚ ∪ {∞}` (LMFDB `mf.upper_half_plane`): the points
    of the upper half-plane `ℍ` together with the cusps, the points of `ℚ ∪ {∞} = OnePoint ℚ`. Its
    topology (`hasBasis_nhds_infty`, `hasBasis_nhds_ratCast`, `isOpenEmbedding_ofUpperHalfPlane`) and
    its action of `SL₂(ℤ)` (`smul_ofUpperHalfPlane`, `smul_cusp`) are those of the LMFDB. 
    UpperHalfPlane.Completed.ofUpperHalfPlane
      (z : UpperHalfPlane) : UpperHalfPlane.Completed
    A point of the upper half-plane. 
    UpperHalfPlane.Completed.cusp (c : OnePoint ℚ) :
      UpperHalfPlane.Completed
    A cusp: a rational number or `∞`. 
Definition1.84
uses 1
Used by 5
Reverse dependency previews
Preview
Definition 1.35
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Absolute Galois group. (LMFDB)

The absolute Galois group of a field K is the group of all automorphisms of the algebraic closure of K that fix the field K.

Depends on: Definition 1.134

Lean code for Definition1.84●1 definition
  • defdefined in Mathlib/FieldTheory/AbsoluteGaloisGroup.lean
    complete
    def Field.absoluteGaloisGroup.{u_1} (K : Type u_1) [Field K] : Type u_1
    def Field.absoluteGaloisGroup.{u_1}
      (K : Type u_1) [Field K] : Type u_1
    The absolute Galois group of `K`, defined as the Galois group of the field extension `K^al/K`,
    where `K^al` is an algebraic closure of `K`. 
Definition1.85
Statement uses 2
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Generators of a group. (LMFDB)

If G is a group and S is a subset of G, then S is a set of generators if the smallest subgroup of G containing S equals G.

Equivalently, S generates G if

G=\bigcap_{S\subseteq H\leq G} H \,.

The automorphism group of G acts on such S, and we say S and S' are equivalent if they are related by this action.

Depends on: Definition 1.75 Definition 1.77

Lean code for Definition1.85●3 declarations
  • defdefined in Mathlib/Algebra/Group/Subgroup/Lattice.lean
    complete
    def Subgroup.closure.{u_1} {G : Type u_1} [Group G] (k : Set G) : Subgroup G
    def Subgroup.closure.{u_1} {G : Type u_1}
      [Group G] (k : Set G) : Subgroup G
    The `Subgroup` generated by a set. 
  • theoremdefined in Mathlib/Algebra/Group/Subgroup/Lattice.lean
    complete
    theorem Subgroup.closure_le.{u_1} {G : Type u_1} [Group G] (K : Subgroup G)
      {k : Set G} : Subgroup.closure k ≤ K ↔ k ⊆ ↑K
    theorem Subgroup.closure_le.{u_1} {G : Type u_1}
      [Group G] (K : Subgroup G) {k : Set G} :
      Subgroup.closure k ≤ K ↔ k ⊆ ↑K
    A subgroup `K` includes `closure k` if and only if it includes `k`. 
  • theoremdefined in Mathlib/Algebra/Group/Subgroup/Lattice.lean
    complete
    theorem Subgroup.mem_closure.{u_1} {G : Type u_1} [Group G] {k : Set G}
      {x : G} : x ∈ Subgroup.closure k ↔ ∀ (K : Subgroup G), k ⊆ ↑K → x ∈ K
    theorem Subgroup.mem_closure.{u_1} {G : Type u_1}
      [Group G] {k : Set G} {x : G} :
      x ∈ Subgroup.closure k ↔
        ∀ (K : Subgroup G), k ⊆ ↑K → x ∈ K
Definition1.86
Statement uses 2
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Haar measure of a topological group. (LMFDB)

For G a locally compact topological group, a Haar measure on G is a nonnegative, countably additive, real-valued measure on G which is invariant under left translation on G. Any such measure is also invariant under right translation on G.

A Haar measure always exists and is unique up to multiplication by a positive scalar. If G is compact, then the normalized Haar measure on G is the unique Haar measure on G under which G has total measure 1.

As a special case, if G is finite of order n, then the normalized Haar measure is the uniform measure that assigns to each element the measure 1/n.

Depends on: Definition 1.75 Definition 1.91

Lean code for Definition1.86●4 declarations
  • class(extends 3, 3 methods)defined in Mathlib/MeasureTheory/Group/Measure.lean
    complete
    class MeasureTheory.Measure.IsHaarMeasure.{u_3} {G : Type u_3} [Group G]
      [TopologicalSpace G] [MeasurableSpace G]
      (μ : MeasureTheory.Measure G) : Prop
    class MeasureTheory.Measure.IsHaarMeasure.{u_3}
      {G : Type u_3} [Group G]
      [TopologicalSpace G] [MeasurableSpace G]
      (μ : MeasureTheory.Measure G) : Prop
    A measure on a group is a Haar measure if it is left-invariant, and gives finite mass to
    compact sets and positive mass to open sets.
    
    Textbooks generally require an additional regularity assumption to ensure nice behavior on
    arbitrary locally compact groups. Use `[IsHaarMeasure μ] [Regular μ]` or
    `[IsHaarMeasure μ] [InnerRegular μ]` in these situations. Note that a Haar measure in our
    sense is automatically regular and inner regular on second countable locally compact groups, as
    checked just below this definition. 
    • MeasureTheory.IsFiniteMeasureOnCompacts μ
    • μ.IsMulLeftInvariant
    • μ.IsOpenPosMeasure
    lt_top_of_isCompact : ∀ ⦃K : Set G⦄, IsCompact K → μ K < ⊤
    Inherited from
    1. MeasureTheory.IsFiniteMeasureOnCompacts
    map_mul_left_eq_self : ∀ (g : G), MeasureTheory.Measure.map (fun x => g * x) μ = μ
    Inherited from
    1. MeasureTheory.Measure.IsMulLeftInvariant
    open_pos : ∀ (U : Set G), IsOpen U → U.Nonempty → μ U ≠ 0
    Inherited from
    1. MeasureTheory.Measure.IsOpenPosMeasure
  • defdefined in Mathlib/MeasureTheory/Measure/Haar/Basic.lean
    complete
    def MeasureTheory.Measure.haarMeasure.{u_1} {G : Type u_1} [Group G]
      [TopologicalSpace G] [IsTopologicalGroup G] [MeasurableSpace G]
      [BorelSpace G] (K₀ : TopologicalSpace.PositiveCompacts G) :
      MeasureTheory.Measure G
    def MeasureTheory.Measure.haarMeasure.{u_1}
      {G : Type u_1} [Group G]
      [TopologicalSpace G]
      [IsTopologicalGroup G]
      [MeasurableSpace G] [BorelSpace G]
      (K₀ :
        TopologicalSpace.PositiveCompacts G) :
      MeasureTheory.Measure G
    The Haar measure on the locally compact group `G`, scaled so that `haarMeasure K₀ K₀ = 1`. 
  • theoremdefined in Mathlib/MeasureTheory/Measure/Haar/Basic.lean
    complete
    theorem MeasureTheory.Measure.haarMeasure_self.{u_1} {G : Type u_1} [Group G]
      [TopologicalSpace G] [IsTopologicalGroup G] [MeasurableSpace G]
      [BorelSpace G] {K₀ : TopologicalSpace.PositiveCompacts G} :
      (MeasureTheory.Measure.haarMeasure K₀) ↑K₀ = 1
    theorem MeasureTheory.Measure.haarMeasure_self.{u_1}
      {G : Type u_1} [Group G]
      [TopologicalSpace G]
      [IsTopologicalGroup G]
      [MeasurableSpace G] [BorelSpace G]
      {K₀ :
        TopologicalSpace.PositiveCompacts G} :
      (MeasureTheory.Measure.haarMeasure K₀)
          ↑K₀ =
        1
  • theoremdefined in Mathlib/MeasureTheory/Measure/Haar/Unique.lean
    complete
    theorem MeasureTheory.Measure.isHaarMeasure_eq_of_isProbabilityMeasure.{u_1}
      {G : Type u_1} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
      [MeasurableSpace G] [BorelSpace G] [LocallyCompactSpace G]
      (μ' μ : MeasureTheory.Measure G)
      [MeasureTheory.IsProbabilityMeasure μ]
      [MeasureTheory.IsProbabilityMeasure μ'] [μ.IsHaarMeasure]
      [μ'.IsHaarMeasure] : μ' = μ
    theorem MeasureTheory.Measure.isHaarMeasure_eq_of_isProbabilityMeasure.{u_1}
      {G : Type u_1} [TopologicalSpace G]
      [Group G] [IsTopologicalGroup G]
      [MeasurableSpace G] [BorelSpace G]
      [LocallyCompactSpace G]
      (μ' μ : MeasureTheory.Measure G)
      [MeasureTheory.IsProbabilityMeasure μ]
      [MeasureTheory.IsProbabilityMeasure μ']
      [μ.IsHaarMeasure] [μ'.IsHaarMeasure] :
      μ' = μ
    **Uniqueness of Haar measures**:
    Two Haar measures which are probability measures coincide. 
Definition1.87
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 1.88
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Group homomorphism. (LMFDB)

If G and H are groups, then a group homomorphism from G to H is a function

f:G\to H

such that for all a,b\in G, f(a*b)=f(a)*f(b).

Depends on: Definition 1.75

Lean code for Definition1.87●2 definitions
  • structure(extends 2, 3 fields)defined in Mathlib/Algebra/Group/Hom/Defs.lean
    complete
    structure MonoidHom.{u_10, u_11} (M : Type u_10) (N : Type u_11) [MulOne M]
      [MulOne N] : Type (max u_10 u_11)
    structure MonoidHom.{u_10, u_11} (M : Type u_10)
      (N : Type u_11) [MulOne M] [MulOne N] :
      Type (max u_10 u_11)
    `M →* N` is the type of functions `M → N` that preserve the `MulOne` structure.
    `MonoidHom` is used for both monoid and group homomorphisms.
    
    When possible, instead of parametrizing results over `(f : M →* N)`,
    you should parametrize over `(F : Type*) [MonoidHomClass F M N] (f : F)`.
    
    When you extend this structure, make sure to extend `MonoidHomClass`.
    
    
    [Wikidata Q868169](https://www.wikidata.org/wiki/Q868169)
    • OneHom M N
    • M →ₙ* N
    toFun : M → N
    Inherited from
    1. OneHom
    map_one' : (↑self).toFun 1 = 1
    Inherited from
    1. OneHom
    map_mul' : ∀ (x y : M), (↑self).toFun (x * y) = (↑self).toFun x * (↑self).toFun y
    The proposition that the function preserves multiplication 
  • defdefined in Mathlib/Algebra/Group/Hom/Defs.lean
    complete
    def MonoidHom.mk'.{u_4, u_7} {M : Type u_4} {G : Type u_7} [Group G]
      [MulOneClass M] (f : M → G)
      (map_mul : ∀ (a b : M), f (a * b) = f a * f b) : M →* G
    def MonoidHom.mk'.{u_4, u_7} {M : Type u_4}
      {G : Type u_7} [Group G] [MulOneClass M]
      (f : M → G)
      (map_mul :
        ∀ (a b : M), f (a * b) = f a * f b) :
      M →* G
    Makes a group homomorphism from a proof that the map preserves multiplication. 
Definition1.88
uses 1used by 1✓L∃∀N

Group isomorphism. (LMFDB)

A group isomorphism is a group homomorphism f:G\to H which is bijective.

Depends on: Definition 1.87

Lean code for Definition1.88●2 definitions
  • structure(extends 2, 5 fields)defined in Mathlib/Algebra/Group/Equiv/Defs.lean
    complete
    structure MulEquiv.{u_9, u_10} (M : Type u_9) (N : Type u_10) [Mul M] [Mul N] :
      Type (max u_10 u_9)
    structure MulEquiv.{u_9, u_10} (M : Type u_9)
      (N : Type u_10) [Mul M] [Mul N] :
      Type (max u_10 u_9)
    `MulEquiv α β` is the type of an equiv `α ≃ β` which preserves multiplication. 
    • M ≃ N
    • M →ₙ* N
    toFun : M → N
    Inherited from
    1. Equiv
    invFun : N → M
    Inherited from
    1. Equiv
    left_inv : Function.LeftInverse self.invFun self.toFun
    Inherited from
    1. Equiv
    right_inv : Function.RightInverse self.invFun self.toFun
    Inherited from
    1. Equiv
    map_mul' : ∀ (x y : M), self.toFun (x * y) = self.toFun x * self.toFun y
    The proposition that the function preserves multiplication 
  • defdefined in Mathlib/Algebra/Group/Equiv/Defs.lean
    complete
    def MulEquiv.ofBijective.{u_10, u_11, u_9} {M : Type u_9} {N : Type u_10}
      {F : Type u_11} [Mul M] [Mul N] [FunLike F M N] [MulHomClass F M N]
      (f : F) (hf : Function.Bijective ⇑f) : M ≃* N
    def MulEquiv.ofBijective.{u_10, u_11, u_9}
      {M : Type u_9} {N : Type u_10}
      {F : Type u_11} [Mul M] [Mul N]
      [FunLike F M N] [MulHomClass F M N]
      (f : F) (hf : Function.Bijective ⇑f) :
      M ≃* N
    A bijective `Semigroup` homomorphism is an isomorphism 
Definition1.89
uses 0used by 1✓L∃∀N

Maximal subgroup of a group. (LMFDB)

If G is a group, a subgroup M is a maximal subgroup if for every subgroup H such that M\subseteq H \subseteq G, either H=M or H=G.

Lean code for Definition1.89●2 declarations
  • defdefined in Mathlib/Order/Atoms.lean
    complete
    def IsCoatom.{u_2} {α : Type u_2} [Preorder α] [OrderTop α] (a : α) : Prop
    def IsCoatom.{u_2} {α : Type u_2} [Preorder α]
      [OrderTop α] (a : α) : Prop
    A coatom of an `OrderTop` is an element with no other element between it and `⊤`,
    which is not `⊤`. 
  • theoremdefined in Mathlib/Order/Atoms.lean
    complete
    theorem IsCoatom.le_iff.{u_2} {α : Type u_2} [PartialOrder α] [OrderTop α]
      {a x : α} (h : IsCoatom a) : a ≤ x ↔ x = ⊤ ∨ x = a
    theorem IsCoatom.le_iff.{u_2} {α : Type u_2}
      [PartialOrder α] [OrderTop α] {a x : α}
      (h : IsCoatom a) : a ≤ x ↔ x = ⊤ ∨ x = a
Definition1.90
Statement uses 3
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Normal series of a group. (LMFDB)

If G is a group, a subnormal series for G is a chain of subgroups

\langle e\rangle =H_0 \lhd H_1 \lhd \cdots \lhd H_k=G

where each subgroup H_i is normal in H_{i+1} for all i.

A subnormal series where H_i is normal in G for all i is a normal series.

Depends on: Definition 1.75 Definition 1.95 Definition 1.97

Lean code for Definition1.90●5 declarations
  • structure(extends 1, 5 fields)defined in LeanBridge/ForMathlib/GroupTheory/SubnormalSeries.lean
    complete
    structure Subgroup.SubnormalSeries.{u_1} (G : Type u_1) [Group G] : Type u_1
    structure Subgroup.SubnormalSeries.{u_1}
      (G : Type u_1) [Group G] : Type u_1
    A **subnormal series** of `G` (LMFDB `group.normal_series`): a chain of subgroups
    `⊥ = H₀ ⊴ H₁ ⊴ ⋯ ⊴ Hₖ = ⊤` in which each `Hᵢ` is contained and normal in `Hᵢ₊₁`. 
    • RelSeries {p | p.1 ≤ p.2 ∧ (p.1.subgroupOf p.2).Normal}
    length : ℕ
    Inherited from
    1. RelSeries
    toFun : Fin (self.length + 1) → Subgroup G
    Inherited from
    1. RelSeries
    step : ∀ (i : Fin self.length), (self.toFun i.castSucc, self.toFun i.succ) ∈ {p | p.1 ≤ p.2 ∧ (p.1.subgroupOf p.2).Normal}
    Inherited from
    1. RelSeries
    head_eq_bot : self.head = ⊥
    A subnormal series starts at the trivial subgroup. 
    last_eq_top : self.last = ⊤
    A subnormal series ends at the whole group. 
  • structure(extends 2, 6 fields)defined in LeanBridge/ForMathlib/GroupTheory/SubnormalSeries.lean
    complete
    structure Subgroup.NormalSeries.{u_1} (G : Type u_1) [Group G] : Type u_1
    structure Subgroup.NormalSeries.{u_1} (G : Type u_1)
      [Group G] : Type u_1
    A **normal series** of `G` (LMFDB `group.normal_series`): a subnormal series all of whose
    terms are normal in `G`. 
    • Subgroup.SubnormalSeries G
    length : ℕ
    Inherited from
    1. Subgroup.SubnormalSeries
    2. RelSeries
    toFun : Fin (self.length + 1) → Subgroup G
    Inherited from
    1. Subgroup.SubnormalSeries
    2. RelSeries
    step : ∀ (i : Fin self.length), (self.toFun i.castSucc, self.toFun i.succ) ∈ {p | p.1 ≤ p.2 ∧ (p.1.subgroupOf p.2).Normal}
    Inherited from
    1. Subgroup.SubnormalSeries
    2. RelSeries
    head_eq_bot : self.head = ⊥
    Inherited from
    1. Subgroup.SubnormalSeries
    last_eq_top : self.last = ⊤
    Inherited from
    1. Subgroup.SubnormalSeries
    normal : ∀ (i : Fin (self.length + 1)), (self.toFun i).Normal
    Every term of a normal series is normal in the whole group. 
  • theoremdefined in LeanBridge/ForMathlib/GroupTheory/SubnormalSeries.lean
    complete
    theorem Subgroup.isSubnormal_iff_exists_subnormalSeries.{u_1} {G : Type u_1}
      [Group G] {H : Subgroup G} : H.IsSubnormal ↔ ∃ s i, s.toFun i = H
    theorem Subgroup.isSubnormal_iff_exists_subnormalSeries.{u_1}
      {G : Type u_1} [Group G]
      {H : Subgroup G} :
      H.IsSubnormal ↔ ∃ s i, s.toFun i = H
    **A subgroup is subnormal if and only if it is a term of a subnormal series**: Mathlib's
    inductive predicate `Subgroup.IsSubnormal` agrees with the LMFDB's chains. 
  • theoremdefined in LeanBridge/ForMathlib/GroupTheory/SubnormalSeries.lean
    complete
    theorem Subgroup.SubnormalSeries.isSubnormal.{u_1} {G : Type u_1} [Group G]
      (s : Subgroup.SubnormalSeries G) (j : Fin (s.length + 1)) :
      (s.toFun j).IsSubnormal
    theorem Subgroup.SubnormalSeries.isSubnormal.{u_1}
      {G : Type u_1} [Group G]
      (s : Subgroup.SubnormalSeries G)
      (j : Fin (s.length + 1)) :
      (s.toFun j).IsSubnormal
    **Every term of a subnormal series is subnormal** in the sense of `Subgroup.IsSubnormal`. 
  • inductive(2 constructors, Prop, 3 parameters)defined in Mathlib/GroupTheory/IsSubnormal.lean
    complete
    inductive Subgroup.IsSubnormal.{u_1} {G : Type u_1} [Group G] : Subgroup G → Prop
    inductive Subgroup.IsSubnormal.{u_1} {G : Type u_1}
      [Group G] : Subgroup G → Prop
    A subgroup `H` of a group `G` satisfies `IsSubnormal` if
    * either `H = ⊤`;
    * or there is a subgroup `K` of `G` containing `H` and such that `H` is normal in `K` and
      `K` satisfies `IsSubnormal`.
    
    Equivalently, `H.IsSubnormal` means that there is a chain of subgroups
    `H₀ ≤ H₁ ≤ ... ≤ Hₙ` such that
    * `H = H₀`,
    * `G = Hₙ`,
    * for each `i ∈ {0, ..., n - 1}`, `Hᵢ` is a normal subgroup of `Hᵢ₊₁`.
    
    See `isSubnormal_iff` for this characterisation.
    
    Subgroup.IsSubnormal.top.{u_1} {G : Type u_1} [Group G] :
      ⊤.IsSubnormal
    The whole subgroup `G` is subnormal in itself. 
    Subgroup.IsSubnormal.step.{u_1} {G : Type u_1} [Group G]
      (H K : Subgroup G) (h_le : H ≤ K) (hSubn : K.IsSubnormal)
      (hN : (H.subgroupOf K).Normal) : H.IsSubnormal
    A subgroup `H` is subnormal if there is a subnormal subgroup `K` containing `H` that is
    subnormal itself and such that `H` is normal in `K`. 
Definition1.91
uses 1
Used by 4
Reverse dependency previews
Preview
Definition 1.86
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Order of a group. (LMFDB)

The order of a group is its cardinality as a set.

Depends on: Definition 1.75

Lean code for Definition1.91●2 definitions
  • defdefined in Mathlib/SetTheory/Cardinal/Finite.lean
    complete
    def Nat.card.{u_3} (α : Type u_3) : ℕ
    def Nat.card.{u_3} (α : Type u_3) : ℕ
    `Nat.card α` is the cardinality of `α` as a natural number.
    If `α` is infinite, `Nat.card α = 0`. 
  • defdefined in Mathlib/SetTheory/Cardinal/Defs.lean
    complete
    def Cardinal.mk.{u} : Type u → Cardinal.{u}
    def Cardinal.mk.{u} : Type u → Cardinal.{u}
    The cardinal number of a type 
Definition1.92
uses 1used by 1✓L∃∀N

Presentation of a finite group. (LMFDB)

A presentation of a group G is a description of G as the quotient F/R of a free group F generated by a specified set of generators, modulo the normal subgroup R generated by a set of words in those generators. When G is abelian we instead express G as a quotient of a free abelian group F so that we can omit commutator relations.

In what follows, we denote by g^h the conjugate h^{-1}gh and by [g, h] the commutator ghg^{-1}h^{-1}.

We only give presentations for finite solvable groups, where they can take a special form. A polycyclic series is a subnormal series G = G_1 \trianglerighteq G_2 \trianglerighteq \dots \trianglerighteq G_n \trianglerighteq G_{n+1} = \{1\} so that G_i/G_{i+1} is cyclic for each i. A polycyclic sequence is a sequence of elements (g_1, \dots, g_n) of G so that G_i/G_{i+1} = \langle g_i G_{i+1}\rangle. The relative orders of a polycyclic series are the orders r_i of the cyclic quotients G_i / G_{i+1}. The polycyclic presentation associated to a polycyclic sequence has generators g_1, \dots, g_n and relations of the following shape.

  • g_i^{r_i} = \prod_{k=i+1}^n g_k^{a_{i,k}} for all i;

  • g_i^{g_j} = \prod_{k=j+1}^n g_k^{b_{i,j,k}} for j < i.

Any finite solvable group has a polycyclic presentation. When the size of G is not too large, we choose a presentation with the following properties:

  • it has a minimal number of generators;

  • among such, it has a maximal number of i so that all a_{i,k} = 0;

  • among such, it has a maximal number of commuting g_i;

  • among such, aim for an increasing sequence of relative orders;

  • among such, minimize the sum of the b_{i,j,k} for noncommuting generators g_i and g_j.

Depends on: Definition 1.90

Lean code for Definition1.92●5 definitions
  • defdefined in Mathlib/GroupTheory/PresentedGroup.lean
    complete
    def PresentedGroup.{u_1} {α : Type u_1} (rels : Set (FreeGroup α)) :
      Type u_1
    def PresentedGroup.{u_1} {α : Type u_1}
      (rels : Set (FreeGroup α)) : Type u_1
    Given a set of relations, `rels`, over a type `α`, `PresentedGroup` constructs the group with
    generators `x : α` and relations `rels` as a quotient of `FreeGroup α`. 
  • defdefined in LeanBridge/ForMathlib/GroupTheory/PolycyclicPresentation.lean
    complete
    def Subgroup.SubnormalSeries.IsPolycyclic.{u_1} {G : Type u_1} [Group G]
      (s : Subgroup.SubnormalSeries G) : Prop
    def Subgroup.SubnormalSeries.IsPolycyclic.{u_1}
      {G : Type u_1} [Group G]
      (s : Subgroup.SubnormalSeries G) : Prop
    A subnormal series `⊥ = H₀ ⊴ H₁ ⊴ ⋯ ⊴ Hₖ = ⊤` is **polycyclic** (LMFDB `group.presentation`),
    or a polycyclic series, if its factors `Hᵢ₊₁ / Hᵢ` are cyclic. 
  • structure(4 fields)defined in LeanBridge/ForMathlib/GroupTheory/PolycyclicPresentation.lean
    complete
    structure PolycyclicSequence.{u_1} (G : Type u_1) [Group G] : Type u_1
    structure PolycyclicSequence.{u_1} (G : Type u_1)
      [Group G] : Type u_1
    A **polycyclic sequence** of `G` (LMFDB `group.presentation`), indexed from `0`: elements
    `g_0, …, g_{n-1}` of `G` such that the subgroups `G_i = ⟨g_i, …, g_{n-1}⟩` form a subnormal series
    `G = G_0 ⊵ G_1 ⊵ ⋯ ⊵ G_n = 1`. This is a polycyclic series (`Subgroup.SubnormalSeries.IsPolycyclic`,
    `PolycyclicSequence.isPolycyclic_toSubnormalSeries`), its factors `G_i / G_{i+1}` being the cyclic
    groups generated by the `g_i G_{i+1}`; conversely, a polycyclic sequence of a polycyclic series
    `(G_i)` has `G_i = ⟨g_i, …, g_{n-1}⟩`. 
    length : ℕ
    The length `n` of the sequence. 
    toFun : Fin self.length → G
    The terms `g_0, …, g_{n-1}` of the sequence. 
    closure_range : Subgroup.closure (Set.range self.toFun) = ⊤
    The terms of a polycyclic sequence generate the group. 
    normal : ∀ (i : Fin self.length),
      ((Subgroup.closureFrom self.toFun (↑i + 1)).subgroupOf (Subgroup.closureFrom self.toFun ↑i)).Normal
    Each `G_{i+1}` is normal in `G_i`. 
  • defdefined in LeanBridge/ForMathlib/GroupTheory/PolycyclicPresentation.lean
    complete
    def PolycyclicSequence.relOrder.{u_1} {G : Type u_1} [Group G]
      (s : PolycyclicSequence G) (k : Fin s.length) : ℕ
    def PolycyclicSequence.relOrder.{u_1}
      {G : Type u_1} [Group G]
      (s : PolycyclicSequence G)
      (k : Fin s.length) : ℕ
    The **relative orders** of a polycyclic sequence (LMFDB `group.presentation`): the orders
    `r_i = [G_i : G_{i+1}]` of the cyclic factors of its polycyclic series. 
  • defdefined in LeanBridge/ForMathlib/GroupTheory/PolycyclicPresentation.lean
    complete
    def PolycyclicPresentation.relators {n : ℕ} (r : Fin n → ℕ)
      (a : Fin n → Fin n → ℤ) (b : Fin n → Fin n → Fin n → ℤ) :
      Set (FreeGroup (Fin n))
    def PolycyclicPresentation.relators {n : ℕ}
      (r : Fin n → ℕ) (a : Fin n → Fin n → ℤ)
      (b : Fin n → Fin n → Fin n → ℤ) :
      Set (FreeGroup (Fin n))
    The relators of the **polycyclic presentation** (LMFDB `group.presentation`) on generators
    `x_0, …, x_{n-1}` with relative orders `r`, power exponents `a` and conjugation exponents `b`: the
    relations `x_i ^ r_i = ∏_{k > i} x_k ^ a_{i,k}` and `x_j⁻¹ x_i x_j = ∏_{k > j} x_k ^ b_{i,j,k}` for
    `j < i`, the products being taken in increasing order of `k`. For a polycyclic sequence of a
    finite group, with its relative orders, they present the group
    (`PolycyclicSequence.presentationEquiv`). 
Definition1.93
Statement uses 4
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Rank. (LMFDB)

The rank of a finite group G is the minimal number of elements required to generate it, which is often smaller than the number of generators in a polycyclic presentation. For p-groups, the rank can be computed by taking the \mathbb{F}_p-dimension of the quotient by the Frattini subgroup.

Depends on: Definition 1.75 Definition 1.80 Definition 1.85 Definition 1.92

Lean code for Definition1.93●3 declarations
  • defdefined in Mathlib/GroupTheory/Rank.lean
    complete
    def Group.rank.{u_1} (G : Type u_1) [Group G] [h : Group.FG G] : ℕ
    def Group.rank.{u_1} (G : Type u_1) [Group G]
      [h : Group.FG G] : ℕ
    The minimum number of generators of a group. 
  • theoremdefined in Mathlib/GroupTheory/Rank.lean
    complete
    theorem Group.rank_spec.{u_1} (G : Type u_1) [Group G] [h : Group.FG G] :
      ∃ S, S.card = Group.rank G ∧ Subgroup.closure ↑S = ⊤
    theorem Group.rank_spec.{u_1} (G : Type u_1)
      [Group G] [h : Group.FG G] :
      ∃ S,
        S.card = Group.rank G ∧
          Subgroup.closure ↑S = ⊤
  • theoremdefined in Mathlib/GroupTheory/Rank.lean
    complete
    theorem Group.rank_le.{u_1} {G : Type u_1} [Group G] [h : Group.FG G]
      {S : Finset G} (hS : Subgroup.closure ↑S = ⊤) : Group.rank G ≤ S.card
    theorem Group.rank_le.{u_1} {G : Type u_1}
      [Group G] [h : Group.FG G]
      {S : Finset G}
      (hS : Subgroup.closure ↑S = ⊤) :
      Group.rank G ≤ S.card
Definition1.94
uses 0
Used by 9
Reverse dependency previews
Preview
Definition 1.81
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

The modular group is the group of 2\times2 matrices with integer coefficients and determinant 1; it is denoted by \mathrm{SL}(2,\mathbb{Z}) or \mathrm{SL}_2(\Z).

A standard set of generators for the modular group are the matrices:

S:=\begin{pmatrix}0&-1\\1&0\end{pmatrix}\quad\text{and}\quad T:=\begin{pmatrix}1&1\\0&1 \end{pmatrix}.

Lean code for Definition1.94●4 declarations
  • defdefined in Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean
    complete
    def Matrix.SpecialLinearGroup.{u, v} (n : Type u) [DecidableEq n]
      [Fintype n] (R : Type v) [CommRing R] : Type (max 0 u v)
    def Matrix.SpecialLinearGroup.{u, v}
      (n : Type u) [DecidableEq n] [Fintype n]
      (R : Type v) [CommRing R] :
      Type (max 0 u v)
    `SpecialLinearGroup n R` is the group of `n` by `n` `R`-matrices with determinant equal to 1.
    
  • defdefined in Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean
    complete
    def ModularGroup.S : Matrix.SpecialLinearGroup (Fin 2) ℤ
    def ModularGroup.S :
      Matrix.SpecialLinearGroup (Fin 2) ℤ
    The matrix `S = [[0, -1], [1, 0]]` as an element of `SL(2, ℤ)`.
    
    This element acts naturally on the Euclidean plane as a rotation about the origin by `π / 2`.
    
    This element also acts naturally on the hyperbolic plane as rotation about `i` by `π`. It
    represents the Mobiüs transformation `z ↦ -1/z` and is an involutive elliptic isometry. 
  • defdefined in Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean
    complete
    def ModularGroup.T : Matrix.SpecialLinearGroup (Fin 2) ℤ
    def ModularGroup.T :
      Matrix.SpecialLinearGroup (Fin 2) ℤ
    The matrix `T = [[1, 1], [0, 1]]` as an element of `SL(2, ℤ)`. 
  • theoremdefined in Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean
    complete
    theorem SpecialLinearGroup.SL2Z_generators :
      Subgroup.closure {ModularGroup.S, ModularGroup.T} = ⊤
    theorem SpecialLinearGroup.SL2Z_generators :
      Subgroup.closure
          {ModularGroup.S, ModularGroup.T} =
        ⊤
    `SL(2, ℤ)` is generated by `S` and `T`. 
Definition1.95
Statement uses 4
Statement dependency previews
Preview
Definition 1.29
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 7
Reverse dependency previews
Preview
Definition 1.78
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Subgroup of a group. (LMFDB)

If G is a group, a subset H\subseteq G is a subgroup of G if the binary operation of G restricts to a binary operation on H, and H is a group for this induced operation.

Equivalently, the subset H must satisfy the following conditions:

  1. for all a,b\in H, a*b\in H

  2. the identity of G is an element of H

  3. for every a\in H, the inverse of a in G is also in H.

Depends on: Definition 1.29 Definition 1.32 Definition 1.33 Definition 1.75

Lean code for Definition1.95●1 definition
  • structure(extends 2, 4 fields)defined in Mathlib/Algebra/Group/Subgroup/Defs.lean
    complete
    structure Subgroup.{u_3} (G : Type u_3) [Group G] : Type u_3
    structure Subgroup.{u_3} (G : Type u_3) [Group G] :
      Type u_3
    A subgroup of a group `G` is a subset containing 1, closed under multiplication
    and closed under multiplicative inverse. 
    
    [Wikidata Q466109](https://www.wikidata.org/wiki/Q466109)
    • Submonoid G
    carrier : Set G
    Inherited from
    1. Submonoid
    2. Subsemigroup
    mul_mem' : ∀ {a b : G}, a ∈ self.carrier → b ∈ self.carrier → a * b ∈ self.carrier
    Inherited from
    1. Submonoid
    2. Subsemigroup
    one_mem' : 1 ∈ self.carrier
    Inherited from
    1. Submonoid
    inv_mem' : ∀ {x : G}, x ∈ self.carrier → x⁻¹ ∈ self.carrier
    `G` is closed under inverses 
Definition1.96
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 3.58
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Index of a subgroup. (LMFDB)

The index of a subgroup G' of a group G, denoted [G:G'], is the order of the set of left cosets of G' in G.

Depends on: Definition 1.79

Lean code for Definition1.96●1 definition
  • defdefined in Mathlib/GroupTheory/Index.lean
    complete
    def Subgroup.index.{u_1} {G : Type u_1} [Group G] (H : Subgroup G) : ℕ
    def Subgroup.index.{u_1} {G : Type u_1}
      [Group G] (H : Subgroup G) : ℕ
    The index of a subgroup as a natural number. Returns `0` if the index is infinite. 
    
    [Wikidata Q1464168](https://www.wikidata.org/wiki/Q1464168)
Definition1.97
Statement uses 4
Statement dependency previews
Preview
Definition 1.29
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.80
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Normal subgroup of a group. (LMFDB)

If H is a subgroup of a group G, then H is normal if any of the following equivalent conditions hold:

  1. gHg^{-1}=H for all g\in G

  2. gHg^{-1}\subseteq H for all g\in G

  3. gH=Hg for all g\in G

  4. (aH)*(bH)=(ab)H is a well-defined binary operation on the set of left cosets of H

If H is a normal subgroup, we write H \lhd G, and the set of left cosets G/H form a group under the operation given in (4) above.

Depends on: Definition 1.29 Definition 1.75 Definition 1.79 Definition 1.95

Lean code for Definition1.97●4 declarations
  • class(1 method)defined in Mathlib/Algebra/Group/Subgroup/Defs.lean
    complete
    class Subgroup.Normal.{u_1} {G : Type u_1} [Group G] (H : Subgroup G) : Prop
    class Subgroup.Normal.{u_1} {G : Type u_1}
      [Group G] (H : Subgroup G) : Prop
    A subgroup `H` is normal if whenever `n ∈ H`, then `g * n * g⁻¹ ∈ H` for every `g : G` 
    
    [Wikidata Q743179](https://www.wikidata.org/wiki/Q743179)
    conj_mem : ∀ n ∈ H, ∀ (g : G), g * n * g⁻¹ ∈ H
    `H` is closed under conjugation 
  • theoremdefined in Mathlib/Algebra/Group/Subgroup/Basic.lean
    complete
    theorem Subgroup.normal_iff_map_conj_eq.{u_1} {G : Type u_1} [Group G]
      {H : Subgroup G} :
      H.Normal ↔ ∀ (g : G), Subgroup.map (↑(MulAut.conj g)) H = H
    theorem Subgroup.normal_iff_map_conj_eq.{u_1}
      {G : Type u_1} [Group G]
      {H : Subgroup G} :
      H.Normal ↔
        ∀ (g : G),
          Subgroup.map (↑(MulAut.conj g)) H =
            H
  • theoremdefined in Mathlib/GroupTheory/Coset/Basic.lean
    complete
    theorem normal_iff_eq_cosets.{u_1} {α : Type u_1} [Group α] (s : Subgroup α) :
      s.Normal ↔ ∀ (g : α), g • ↑s = MulOpposite.op g • ↑s
    theorem normal_iff_eq_cosets.{u_1} {α : Type u_1}
      [Group α] (s : Subgroup α) :
      s.Normal ↔
        ∀ (g : α),
          g • ↑s = MulOpposite.op g • ↑s
  • defdefined in Mathlib/GroupTheory/QuotientGroup/Defs.lean
    complete
    def QuotientGroup.Quotient.group.{u_1} {G : Type u_1} [Group G]
      (N : Subgroup G) [nN : N.Normal] : Group (G ⧸ N)
    def QuotientGroup.Quotient.group.{u_1}
      {G : Type u_1} [Group G]
      (N : Subgroup G) [nN : N.Normal] :
      Group (G ⧸ N)
Definition1.98
Statement uses 3
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Sylow subgroup. (LMFDB)

If p is a prime and G is a finite group of order p^nm where p\nmid m, then a p-Sylow subgroup of G is any subgroup of order p^n.

Sylow subgroups exist for every finite group and prime p.

Depends on: Definition 1.75 Definition 1.91 Definition 1.95

Lean code for Definition1.98●4 declarations
  • structure(extends 3, 5 fields)defined in Mathlib/GroupTheory/Sylow.lean
    complete
    structure Sylow.{u_1} (p : ℕ) (G : Type u_1) [Group G] : Type u_1
    structure Sylow.{u_1} (p : ℕ) (G : Type u_1)
      [Group G] : Type u_1
    A Sylow `p`-subgroup is a maximal `p`-subgroup. 
    • Subgroup G
    carrier : Set G
    Inherited from
    1. Subgroup
    2. Submonoid
    3. Subsemigroup
    mul_mem' : ∀ {a b : G}, a ∈ (↑self).carrier → b ∈ (↑self).carrier → a * b ∈ (↑self).carrier
    Inherited from
    1. Subgroup
    2. Submonoid
    3. Subsemigroup
    one_mem' : 1 ∈ (↑self).carrier
    Inherited from
    1. Subgroup
    2. Submonoid
    inv_mem' : ∀ {x : G}, x ∈ (↑self).carrier → x⁻¹ ∈ (↑self).carrier
    Inherited from
    1. Subgroup
    maximal_isPGroup : Maximal (fun x => IsPGroup p ↥x) ↑self
  • theoremdefined in Mathlib/GroupTheory/Sylow.lean
    complete
    theorem Sylow.card_eq_multiplicity.{u} {G : Type u} [Group G] [Finite G] {p : ℕ}
      [hp : Fact (Nat.Prime p)] (P : Sylow p G) :
      Nat.card ↥↑P = p ^ (Nat.card G).factorization p
    theorem Sylow.card_eq_multiplicity.{u}
      {G : Type u} [Group G] [Finite G]
      {p : ℕ} [hp : Fact (Nat.Prime p)]
      (P : Sylow p G) :
      Nat.card ↥↑P =
        p ^ (Nat.card G).factorization p
    The cardinality of a Sylow subgroup is `p ^ n`
    where `n` is the multiplicity of `p` in the group order. 
  • defdefined in Mathlib/GroupTheory/Sylow.lean
    complete
    def Sylow.ofCard.{u_1} {G : Type u_1} [Group G] [Finite G] {p : ℕ}
      [Fact (Nat.Prime p)] (H : Subgroup G)
      (card_eq : Nat.card ↥H = p ^ (Nat.card G).factorization p) : Sylow p G
    def Sylow.ofCard.{u_1} {G : Type u_1}
      [Group G] [Finite G] {p : ℕ}
      [Fact (Nat.Prime p)] (H : Subgroup G)
      (card_eq :
        Nat.card ↥H =
          p ^ (Nat.card G).factorization p) :
      Sylow p G
    A subgroup with cardinality `p ^ n` is a Sylow subgroup
    where `n` is the multiplicity of `p` in the group order. 
  • theoremdefined in Mathlib/GroupTheory/Sylow.lean
    complete
    theorem Sylow.nonempty.{u_1} {p : ℕ} {G : Type u_1} [Group G] :
      Nonempty (Sylow p G)
    theorem Sylow.nonempty.{u_1} {p : ℕ}
      {G : Type u_1} [Group G] :
      Nonempty (Sylow p G)
Definition1.99
Statement uses 2
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Torsion group. (LMFDB)

A torsion group is a group in which every element has finite order.

The elements of finite order in an abelian group A form a torsion group called the torsion subgroup of A.

Depends on: Definition 1.75 Definition 1.76

Lean code for Definition1.99●3 definitions
  • defdefined in Mathlib/GroupTheory/Torsion.lean
    complete
    def IsMulTorsion.{u_1} (G : Type u_1) [Monoid G] : Prop
    def IsMulTorsion.{u_1} (G : Type u_1)
      [Monoid G] : Prop
    A predicate on a monoid saying that all elements are of finite order. 
  • defdefined in Mathlib/GroupTheory/Torsion.lean
    complete
    def CommGroup.torsion.{u_1} (G : Type u_1) [CommGroup G] : Subgroup G
    def CommGroup.torsion.{u_1} (G : Type u_1)
      [CommGroup G] : Subgroup G
    The torsion subgroup of an abelian group. 
  • defdefined in Mathlib/GroupTheory/Torsion.lean
    complete
    def AddCommGroup.torsion.{u_1} (G : Type u_1) [AddCommGroup G] :
      AddSubgroup G
    def AddCommGroup.torsion.{u_1} (G : Type u_1)
      [AddCommGroup G] : AddSubgroup G
    The torsion additive subgroup of an additive abelian group. 
Definition1.100
Statement uses 2
Statement dependency previews
Preview
Definition 1.134
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Automorphism group of a field extension. (LMFDB)

If K/F is an extension of fields, its automorphism group is

\textrm{Aut}(K/F) = \{\sigma:K\to K\mid \forall a\in F, \sigma(a)=a, \text{ and } \sigma \text{ is an isomorphism}\}.

Note, a finite extension is Galois if and only if |\textrm{Aut}(K/F)| = [K:F].

Depends on: Definition 2.31 Definition 1.134

Lean code for Definition1.100●4 declarations
  • structure(extends 6, 7 fields)defined in Mathlib/Algebra/Algebra/Equiv.lean
    complete
    structure AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w)
      [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)
    structure AlgEquiv.{u, v, w} (R : Type u)
      (A : Type v) (B : Type w)
      [CommSemiring R] [Semiring A]
      [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)
    An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. 
    • A ≃ B
    • A ≃* B
    • A ≃+ B
    • A ≃+* B
    toFun : A → B
    Inherited from
    1. Equiv
    invFun : B → A
    Inherited from
    1. Equiv
    left_inv : Function.LeftInverse self.invFun self.toFun
    Inherited from
    1. Equiv
    right_inv : Function.RightInverse self.invFun self.toFun
    Inherited from
    1. Equiv
    map_mul' : ∀ (x y : A), self.toFun (x * y) = self.toFun x * self.toFun y
    The proposition that the function preserves multiplication 
    map_add' : ∀ (x y : A), self.toFun (x + y) = self.toFun x + self.toFun y
    The proposition that the function preserves addition 
    commutes' : ∀ (r : R), self.toFun ((algebraMap R A) r) = (algebraMap R B) r
    An equivalence of algebras commutes with the action of scalars. 
  • defdefined in Mathlib/Algebra/Algebra/Equiv.lean
    complete
    def AlgEquiv.aut.{uR, uA₁} {R : Type uR} {A₁ : Type uA₁} [CommSemiring R]
      [Semiring A₁] [Algebra R A₁] : Group (A₁ ≃ₐ[R] A₁)
    def AlgEquiv.aut.{uR, uA₁} {R : Type uR}
      {A₁ : Type uA₁} [CommSemiring R]
      [Semiring A₁] [Algebra R A₁] :
      Group (A₁ ≃ₐ[R] A₁)
    [Stacks Tag 09HR](https://stacks.math.columbia.edu/tag/09HR)
  • theoremdefined in Mathlib/FieldTheory/Galois/Basic.lean
    complete
    theorem IsGalois.card_aut_eq_finrank.{u_1, u_2} (F : Type u_1) [Field F]
      (E : Type u_2) [Field E] [Algebra F E] [FiniteDimensional F E]
      [IsGalois F E] : Nat.card Gal(E/F) = Module.finrank F E
    theorem IsGalois.card_aut_eq_finrank.{u_1, u_2}
      (F : Type u_1) [Field F] (E : Type u_2)
      [Field E] [Algebra F E]
      [FiniteDimensional F E] [IsGalois F E] :
      Nat.card Gal(E/F) = Module.finrank F E
    Let $E / F$ be a finite extension of fields. If $E$ is Galois over $F$, then
    $|\text{Aut}(E/F)| = [E : F]$. 
  • theoremdefined in Mathlib/FieldTheory/Galois/Basic.lean
    complete
    theorem IsGalois.of_card_aut_eq_finrank.{u_1, u_2} (F : Type u_1) [Field F]
      (E : Type u_2) [Field E] [Algebra F E] [FiniteDimensional F E]
      (h : Nat.card Gal(E/F) = Module.finrank F E) : IsGalois F E
    theorem IsGalois.of_card_aut_eq_finrank.{u_1, u_2}
      (F : Type u_1) [Field F] (E : Type u_2)
      [Field E] [Algebra F E]
      [FiniteDimensional F E]
      (h :
        Nat.card Gal(E/F) =
          Module.finrank F E) :
      IsGalois F E
    Let $E / F$ be a finite extension of fields. If $|\text{Aut}(E/F)| = [E : F]$, then
    $E$ is Galois over $F$. 
Definition1.101
Statement uses 4
Statement dependency previews
Preview
Definition 1.103
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.36
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Inertia group. (LMFDB)

Let

  • K be a p-adic field.

  • L a finite Galois extension of K.

  • \mathcal{O}_K, \mathcal{O}_L the rings of integers for K, L,

  • P_K, P_L the unique maximal ideals of \mathcal{O}_K, \mathcal{O}_L, and

  • \kappa=\mathcal{O}_K/P_K, \lambda=\mathcal{O}_L/P_L the

residue fields of K, L.

Then each \sigma\in \Gal(L/K) induces a element of \Gal(\lambda/\kappa). The kernel of the resulting homomorphism

\Gal(L/K) \to \Gal(\lambda/\kappa)

is the inertia group of L/K.

Depends on: Definition 1.103 Definition 1.104 Definition 1.106 Definition 2.31

Lean code for Definition1.101●4 declarations
  • defdefined in Mathlib/RingTheory/Valuation/RamificationGroup.lean
    complete
    def ValuationSubring.inertiaSubgroup.{u_1, u_2} (K : Type u_1)
      {L : Type u_2} [Field K] [Field L] [Algebra K L]
      (A : ValuationSubring L) :
      Subgroup ↥(ValuationSubring.decompositionSubgroup K A)
    def ValuationSubring.inertiaSubgroup.{u_1,
        u_2}
      (K : Type u_1) {L : Type u_2} [Field K]
      [Field L] [Algebra K L]
      (A : ValuationSubring L) :
      Subgroup
        ↥(ValuationSubring.decompositionSubgroup
            K A)
    The inertia subgroup defined as the kernel of the group homomorphism from
    the decomposition subgroup to the group of automorphisms of the residue field of `A`. 
  • abbrevdefined in Mathlib/RingTheory/Ideal/Defs.lean
    complete
    abbrev Ideal.inertia.{u, u_1} {α : Type u} [Ring α] (G : Type u_1) [Group G]
      [MulAction G α] (I : Ideal α) : Subgroup G
    abbrev Ideal.inertia.{u, u_1} {α : Type u}
      [Ring α] (G : Type u_1) [Group G]
      [MulAction G α] (I : Ideal α) :
      Subgroup G
    The subgroup of elements `g` of `G` such that `∀ x, g • x - x ∈ I`. 
  • defdefined in Mathlib/RingTheory/Ideal/Over.lean
    complete
    def Ideal.Quotient.stabilizerHom.{u_3, u_4, u_6} {A : Type u_3}
      {B : Type u_4} [CommRing A] [CommRing B] [Algebra A B] (P : Ideal B)
      (p : Ideal A) [P.LiesOver p] (G : Type u_6) [Group G]
      [MulSemiringAction G B] [SMulCommClass G A B] :
      ↥(MulAction.stabilizer G P) →* (B ⧸ P) ≃ₐ[A ⧸ p] B ⧸ P
    def Ideal.Quotient.stabilizerHom.{u_3, u_4,
        u_6}
      {A : Type u_3} {B : Type u_4}
      [CommRing A] [CommRing B] [Algebra A B]
      (P : Ideal B) (p : Ideal A)
      [P.LiesOver p] (G : Type u_6) [Group G]
      [MulSemiringAction G B]
      [SMulCommClass G A B] :
      ↥(MulAction.stabilizer G P) →*
        (B ⧸ P) ≃ₐ[A ⧸ p] B ⧸ P
    If `P` lies over `p`, then the stabilizer of `P` acts on the extension `(B ⧸ P) / (A ⧸ p)`. 
  • theoremdefined in Mathlib/RingTheory/Ideal/Over.lean
    complete
    theorem Ideal.Quotient.map_ker_stabilizer_subtype.{u_3, u_4, u_6} {A : Type u_3}
      {B : Type u_4} [CommRing A] [CommRing B] [Algebra A B] (P : Ideal B)
      (p : Ideal A) [P.LiesOver p] (G : Type u_6) [Group G]
      [MulSemiringAction G B] [SMulCommClass G A B] :
      Subgroup.map (MulAction.stabilizer G P).subtype
          (Ideal.Quotient.stabilizerHom P p G).ker =
        Ideal.inertia G P
    theorem Ideal.Quotient.map_ker_stabilizer_subtype.{u_3,
        u_4, u_6}
      {A : Type u_3} {B : Type u_4}
      [CommRing A] [CommRing B] [Algebra A B]
      (P : Ideal B) (p : Ideal A)
      [P.LiesOver p] (G : Type u_6) [Group G]
      [MulSemiringAction G B]
      [SMulCommClass G A B] :
      Subgroup.map
          (MulAction.stabilizer G P).subtype
          (Ideal.Quotient.stabilizerHom P p
              G).ker =
        Ideal.inertia G P
Definition1.102
Statement uses 3
Statement dependency previews
Preview
Definition 1.132
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Definition 1.103
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Local field. (LMFDB)

A local field is a field K with a non-trivial absolute value |\ | that is locally compact in the topology induced by the distance metric d(x,y):=|x-y|.

An archimedean local field is a local field whose absolute value is archimedean; such a field is isomorphic to \R or \C.

A nonarchimedean local field is a local field whose absolute value is nonarchimedean. Such a field is either isomorphic to a finite extension of \Q_p when K has characteristic zero (in which case it is a p-adic field), or to a finite extension of \F_p((t)) when K has characteristic p. In both cases p is the characteristic of the residue field of K..

Depends on: Definition 2.4 Definition 1.132 Definition 1.134

Lean code for Definition1.102●1 definition
  • class(extends 3, 3 methods)defined in Mathlib/NumberTheory/LocalField/Basic.lean
    complete
    class IsNonarchimedeanLocalField.{u_1} (K : Type u_1) [Field K]
      [ValuativeRel K] [TopologicalSpace K] : Prop
    class IsNonarchimedeanLocalField.{u_1}
      (K : Type u_1) [Field K]
      [ValuativeRel K] [TopologicalSpace K] :
      Prop
    Given a topological field `K` equipped with an equivalence class of valuations (a `ValuativeRel`),
    we say that it is a non-archimedean local field if the topology comes from the given valuation,
    and it is locally compact and non-discrete.
    
    This implies the following typeclasses via `inferInstance`
    - `IsValuativeTopology K`
    - `LocallyCompactSpace K`
    - `IsTopologicalDivisionRing K`
    - `ValuativeRel.IsNontrivial K`
    - `ValuativeRel.IsRankLeOne K`
    - `ValuativeRel.IsDiscrete K`
    - `IsDiscreteValuationRing 𝒪[K]`
    - `Finite 𝓀[K]`
    
    Assuming we have a compatible `UniformSpace K` instance
    (e.g. via `IsTopologicalAddGroup.toUniformSpace` and `isUniformAddGroup_of_addCommGroup`) then
    - `CompleteSpace K`
    - `CompleteSpace 𝒪[K]`
    
    • IsValuativeTopology K
    • LocallyCompactSpace K
    • ValuativeRel.IsNontrivial K
    mem_nhds_iff : ∀ {s : Set K} {x : K}, s ∈ nhds x ↔ ∃ γ, (fun x_1 => x + x_1) '' {z | (ValuativeRel.valuation K) z < ↑γ} ⊆ s
    Inherited from
    1. IsValuativeTopology
    local_compact_nhds : ∀ (x : K), ∀ n ∈ nhds x, ∃ s ∈ nhds x, s ⊆ n ∧ IsCompact s
    Inherited from
    1. LocallyCompactSpace
    condition : ∃ γ, γ ≠ 0 ∧ γ ≠ 1
    Inherited from
    1. ValuativeRel.IsNontrivial
Definition1.103
Statement uses 5
Statement dependency previews
Preview
Definition 1.102
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.101
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Maximal ideal of a local field. (LMFDB)

The maximal ideal of a nonarchimedean local field K is the unique maximal ideal of its ring of integers \mathcal O_K.

It consists of all elements of \mathcal O_K that are not units, equivalently, all elements of K whose absolute value is strictly less than 1.

Depends on: Definition 1.102 Definition 1.107 Definition 2.4 Definition 1.143 Definition 1.147

Lean code for Definition1.103●1 definition
  • defdefined in Mathlib/RingTheory/LocalRing/MaximalIdeal/Defs.lean
    complete
    def IsLocalRing.maximalIdeal.{u_1} (R : Type u_1) [CommSemiring R]
      [IsLocalRing R] : Ideal R
    def IsLocalRing.maximalIdeal.{u_1}
      (R : Type u_1) [CommSemiring R]
      [IsLocalRing R] : Ideal R
    The ideal of elements that are not units. 
Definition1.104
Statement uses 3
Statement dependency previews
Preview
Definition 1.102
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.36
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

p-adic field. (LMFDB)

A p-adic field (or local number field) is a finite extension of \Q_p, equivalently, a nonarchimedean local field of characteristic zero.

Depends on: Definition 1.102 Definition 1.105 Definition 1.132

Lean code for Definition1.104●3 definitions
  • class(3 methods)defined in TauCeti/NumberTheory/LocalField/AbsoluteRamificationIndex.lean
    complete
    class TauCeti.FinitePadicExtension.{u_1} (K : Type u_1) [Field K]
      [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
      (p : ℕ) [Fact (Nat.Prime p)] : Type u_1
    class TauCeti.FinitePadicExtension.{u_1}
      (K : Type u_1) [Field K]
      [ValuativeRel K] [TopologicalSpace K]
      [IsNonarchimedeanLocalField K] (p : ℕ)
      [Fact (Nat.Prime p)] : Type u_1
    A nonarchimedean local field equipped as a finite compatible extension of `ℚ_[p]`.
    
    The algebra structure is bundled so that the finiteness and compatibility conditions constrain
    the domain of `absoluteRamificationIndex` without becoming unused arguments of its definition. 
    algebra : Algebra ℚ_[p] K
    The `ℚ_[p]`-algebra structure on the extension. 
    toModuleFinite : Module.Finite ℚ_[p] K
    The extension has finite degree over `ℚ_[p]`. 
    toValuativeExtension : ValuativeExtension ℚ_[p] K
    The algebra map is compatible with the valuative relations. 
  • defdefined in Mathlib/NumberTheory/Padics/PadicNumbers.lean
    complete
    def Padic (p : ℕ) [Fact (Nat.Prime p)] : Type
    def Padic (p : ℕ) [Fact (Nat.Prime p)] : Type
    The `p`-adic numbers `ℚ_[p]` are the Cauchy completion of `ℚ` with respect to the `p`-adic norm.
    
  • abbrevdefined in Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean
    complete
    abbrev FiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2)
      [DivisionRing K] [AddCommGroup V] [Module K V] : Prop
    abbrev FiniteDimensional.{u_1, u_2}
      (K : Type u_1) (V : Type u_2)
      [DivisionRing K] [AddCommGroup V]
      [Module K V] : Prop
    `FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition. 
Definition1.105
uses 0used by 1✓L∃∀N

Definition of \Q_p. (LMFDB)

If p is a prime number, then every rational number r can be written in the form r=p^j \frac{a}{b} where \gcd(p, ab)=1. We define |r|_p = p^{-j}, and define a metric on \Q by d(u,v) = |u-v|_p; in other words, u and v are close to each other if they are congruent modulo a larger power of p.

The completion of \Q with respect to this metric is the field of p-adic numbers, denoted as \Q_p. Any non-zero element x \in \Q_p can be written uniquely as the sum of a convergent series x = \sum_{n=n_0}^{+\infty} a_n p^n, where a_n \in \{ 0, \cdots, p-1 \}, n_0 \in \Z is such that |x|_p=p^{-n_0}, and a_{n_0} \neq 0.

Example: the element a = 3 + 7 + 2 \cdot 7^2 + 6 \cdot 7^3 + 7^4 + 2 \cdot 7^5 + \cdots satisfies a^2=2, since truncating the expansion after n terms and squaring yields a number which is congruent to 2 \bmod 7^n.

Lean code for Definition1.105●1 definition
  • defdefined in Mathlib/NumberTheory/Padics/PadicNumbers.lean
    complete
    def Padic (p : ℕ) [Fact (Nat.Prime p)] : Type
    def Padic (p : ℕ) [Fact (Nat.Prime p)] : Type
    The `p`-adic numbers `ℚ_[p]` are the Cauchy completion of `ℚ` with respect to the `p`-adic norm.
    
Definition1.106
Statement uses 2
Statement dependency previews
Preview
Definition 1.103
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Residue field. (LMFDB)

The residue field of a nonarchimedean local field is the quotient of its ring of integers by its unique maximal ideal.

The residue field is finite and its characteristic p is the residue field characteristic. Finite extensions of \Q_p have residue field characteristic p.

Depends on: Definition 1.103 Definition 1.107

Lean code for Definition1.106●1 definition
  • defdefined in Mathlib/RingTheory/LocalRing/ResidueField/Defs.lean
    complete
    def IsLocalRing.ResidueField.{u_1} (R : Type u_1) [CommRing R]
      [IsLocalRing R] : Type u_1
    def IsLocalRing.ResidueField.{u_1}
      (R : Type u_1) [CommRing R]
      [IsLocalRing R] : Type u_1
    The residue field of a local ring is the quotient of the ring by its maximal ideal. 
Definition1.107
Statement uses 2
Statement dependency previews
Preview
Definition 1.102
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Definition 1.103
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Ring of integers of a local field. (LMFDB)

The ring of integers of a local field K with absolute value |\ | is the subring \mathcal O_K := \{x\in K:|x|\le 1\}; it is a discrete valuation ring.

Depends on: Definition 1.102 Definition 2.4

Lean code for Definition1.107●1 definition
  • defdefined in Mathlib/RingTheory/Valuation/Integers.lean
    complete
    def Valuation.integer.{u, v} {R : Type u} {Γ₀ : Type v} [Ring R]
      [LinearOrderedCommGroupWithZero Γ₀] (v : Valuation R Γ₀) : Subring R
    def Valuation.integer.{u, v} {R : Type u}
      {Γ₀ : Type v} [Ring R]
      [LinearOrderedCommGroupWithZero Γ₀]
      (v : Valuation R Γ₀) : Subring R
    The ring of integers under a given valuation is the subring of elements with valuation ≤ 1. 
Definition1.108
Statement uses 3
Statement dependency previews
Preview
Definition 1.98
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Wild inertia group. (LMFDB)

The wild inertia group of a Galois extension K/\Q_p is the unique p-Sylow subgroup of its inertia group.

Depends on: Definition 1.98 Definition 1.101 Definition 2.31

Lean code for Definition1.108●3 definitions
  • defdefined in TauCeti/NumberTheory/LocalField/RamificationGroup.lean
    complete
    def TauCeti.LocalFieldsRamification.lowerRamificationGroup.{u_1, u_2}
      (K : Type u_1) (L : Type u_2) [Field K] [ValuativeRel K]
      [TopologicalSpace K] [IsNonarchimedeanLocalField K] [Field L]
      [ValuativeRel L] [TopologicalSpace L] [IsNonarchimedeanLocalField L]
      [Algebra K L] [ValuativeExtension K L] [Module.Finite K L] (i : ℤ) :
      Subgroup Gal(L/K)
    def TauCeti.LocalFieldsRamification.lowerRamificationGroup.{u_1,
        u_2}
      (K : Type u_1) (L : Type u_2) [Field K]
      [ValuativeRel K] [TopologicalSpace K]
      [IsNonarchimedeanLocalField K] [Field L]
      [ValuativeRel L] [TopologicalSpace L]
      [IsNonarchimedeanLocalField L]
      [Algebra K L] [ValuativeExtension K L]
      [Module.Finite K L] (i : ℤ) :
      Subgroup Gal(L/K)
    The lower-numbering ramification group of a finite extension of local fields. 
  • defdefined in TauCeti/NumberTheory/LocalField/UnitFiltration/RamificationGroup.lean
    complete
    def TauCeti.ramificationGroupOneSylow.{u_1, u_2} {L : Type u_1} [Field L]
      [ValuativeRel L] [TopologicalSpace L] [IsNonarchimedeanLocalField L]
      (G : Type u_2) [Group G] [MulSemiringAction G L]
      [IsInvariantSubring G (ValuativeRel.valuation L).integer] (p : ℕ)
      [CharP (IsLocalRing.ResidueField ↥(ValuativeRel.valuation L).integer)
          p]
      [FaithfulSMul G ↥(ValuativeRel.valuation L).integer]
      [Finite
          ↥(TauCeti.IsLocalRing.ramificationGroup G
              (↥(ValuativeRel.valuation L).integer) 0)] :
      Sylow p
        ↥(TauCeti.IsLocalRing.ramificationGroup G
            (↥(ValuativeRel.valuation L).integer) 0)
    def TauCeti.ramificationGroupOneSylow.{u_1,
        u_2}
      {L : Type u_1} [Field L]
      [ValuativeRel L] [TopologicalSpace L]
      [IsNonarchimedeanLocalField L]
      (G : Type u_2) [Group G]
      [MulSemiringAction G L]
      [IsInvariantSubring G
          (ValuativeRel.valuation L).integer]
      (p : ℕ)
      [CharP
          (IsLocalRing.ResidueField
            ↥(ValuativeRel.valuation
                  L).integer)
          p]
      [FaithfulSMul G
          ↥(ValuativeRel.valuation L).integer]
      [Finite
          ↥(TauCeti.IsLocalRing.ramificationGroup
              G
              (↥(ValuativeRel.valuation
                    L).integer)
              0)] :
      Sylow p
        ↥(TauCeti.IsLocalRing.ramificationGroup
            G
            (↥(ValuativeRel.valuation
                  L).integer)
            0)
    **Wild inertia is the Sylow `p`-subgroup of inertia.** For the residue characteristic `p`,
    the first ramification group `G_1`, viewed as a subgroup of `G_0`, is a Sylow `p`-subgroup.
    
    The two inputs are the positive-depth `p`-group theorem and the tame-character embedding, which
    shows that the index `#(G_0/G_1)` divides `#𝓀[L] - 1` and is therefore prime to `p`. 
  • defdefined in TauCeti/NumberTheory/LocalField/WildInertia.lean
    complete
    def TauCeti.wildInertiaSubgroup.{u_1} (K : Type u_1) [Field K]
      [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K] :
      Subgroup (Field.absoluteGaloisGroup K)
    def TauCeti.wildInertiaSubgroup.{u_1}
      (K : Type u_1) [Field K]
      [ValuativeRel K] [TopologicalSpace K]
      [IsNonarchimedeanLocalField K] :
      Subgroup (Field.absoluteGaloisGroup K)
    **The wild inertia subgroup** `P_K` of the absolute Galois group of a nonarchimedean local
    field `K`: the automorphisms of the algebraic closure fixing the maximal tamely ramified extension
    `K^{t}`. Through `IntermediateField.fixingSubgroupEquiv` it is `Gal(K^{alg}/K^{t})`. 
Definition1.109
Statement uses 3
Statement dependency previews
Preview
Definition 1.114
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 12
Reverse dependency previews
Preview
Definition 1.110
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

L-function. (LMFDB)

An (analytic) L-function is a Dirichlet series that has an Euler product and satisfies a certain type of functional equation.

It is expected that all L-functions satisfy the Riemann Hypothesis, that all of the zeros in the critical strip are on the critical line. Selberg has defined a class \mathcal S of Dirichlet series that satisfy the Selberg axioms. It is conjectured (but far from proven) that \mathcal S is precisely the set of all L-functions. Selberg's axioms have not been verified for all of the L-functions in this database but are known to hold for many of them.

It is also conjectured that a precise form of the functional equation holds for every element of \mathcal S. Under this assumption the functional equation is determined by a quadruple known as the Selberg data, consisting of the degree, conductor, spectral parameters, and sign.

Depends on: Definition 1.114 Definition 1.116 Definition 1.117

Lean code for Definition1.109●5 declarations
  • structure(14 fields)defined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    structure AnalyticLFunction : Type
    structure AnalyticLFunction : Type
    An **analytic L-function** (LMFDB `lfunction`), in its analytic normalisation: a Dirichlet
    series `L(s) = ∑ aₙ n ^ (-s)` that converges absolutely for `re s > 1`, has an Euler product and
    satisfies a **functional equation** (LMFDB `lfunction.functional_equation`) of the form
    
    `Λ(s) = N ^ (s / 2) ∏ⱼ Γ_ℝ(s + μⱼ) ∏ₖ Γ_ℂ(s + νₖ) L(s) = ε conj (Λ (1 - conj s))`
    
    with Selberg data `(N, μ, ν, ε)` and degree `d = J + 2 K`. The structure records the coefficients
    `aₙ`, the continuation `L(s)` of the series, which is holomorphic on `ℂ` except for at most a pole
    at `s = 1`, and the completed L-function `Λ(s)`, which is holomorphic except at `s = 0` and
    `s = 1`, the only possible poles of a completed L-function (they come from factors `ζ(s)`). The
    completion equals `N ^ (s / 2) ∏ⱼ Γ_ℝ(s + μⱼ) ∏ₖ Γ_ℂ(s + νₖ) L(s)` for `re s > 1`, hence as a
    meromorphic function by analytic continuation, and the functional equation is stated pointwise
    for `s ≠ 0, 1`, where no junk values intervene.
    
    The Euler product is encoded by the multiplicativity of the coefficients, with `a₁ = 1`, and by
    local factors `∑ₖ a_{pᵏ} Tᵏ = 1 / Fₚ(T)` for polynomials `Fₚ` of degree at most `d`, with equality
    exactly for the primes `p ∤ N` (LMFDB `lfunction.euler_product`, without the Ramanujan bounds
    `|αᵢ(p)| = 1` and `|βᵢ(p)| ≤ 1`, which are not known in general). 
    coeff : ℕ → ℂ
    The Dirichlet coefficients `aₙ`, in the analytic normalisation. 
    toFun : ℂ → ℂ
    The analytic continuation `L(s)` of the Dirichlet series. 
    completed : ℂ → ℂ
    The completed L-function `Λ(s)` (LMFDB `lfunction.completed`). 
    selbergData : AnalyticLFunction.SelbergData
    The Selberg data of the functional equation. 
    coeff_one : self.coeff 1 = 1
    coeff_mul_of_coprime : ∀ {m n : ℕ}, m.Coprime n → self.coeff (m * n) = self.coeff m * self.coeff n
    exists_eulerFactor : ∀ (p : ℕ),
      Nat.Prime p →
        ∃ F,
          F.natDegree ≤ self.selbergData.degree ∧
            (F.natDegree = self.selbergData.degree ↔ ¬p ∣ self.selbergData.conductor) ∧
              (↑F * PowerSeries.mk fun k => self.coeff (p ^ k)) = 1
    LSeriesSummable_coeff : ∀ {s : ℂ}, 1 < s.re → LSeriesSummable self.coeff s
    toFun_eq_LSeries : ∀ {s : ℂ}, 1 < s.re → self.toFun s = LSeries self.coeff s
    differentiableOn_toFun : DifferentiableOn ℂ self.toFun {1}ᶜ
    meromorphicAt_toFun : MeromorphicAt self.toFun 1
    completed_eq : ∀ {s : ℂ},
      1 < s.re → self.completed s = ↑self.selbergData.conductor ^ (s / 2) * self.selbergData.gammaFactor s * self.toFun s
    differentiableOn_completed : DifferentiableOn ℂ self.completed {0, 1}ᶜ
    completed_eq_sign_mul_conj : ∀ {s : ℂ},
      s ≠ 0 → s ≠ 1 → self.completed s = self.selbergData.sign * (starRingEnd ℂ) (self.completed (1 - (starRingEnd ℂ) s))
  • structure(8 fields)defined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    structure AnalyticLFunction.SelbergData : Type
    structure AnalyticLFunction.SelbergData : Type
    The **Selberg data** (LMFDB `lfunction.selbergdata`) of a functional equation
    `Λ(s) = N ^ (s / 2) ∏ⱼ Γ_ℝ(s + μⱼ) ∏ₖ Γ_ℂ(s + νₖ) L(s) = ε conj (Λ (1 - conj s))`: the
    **conductor** `N` (LMFDB `lfunction.conductor`), the **spectral parameters** `μⱼ` of the factors
    `Γ_ℝ` and `νₖ` of the factors `Γ_ℂ` (LMFDB `lfunction.spectral_parameters`), and the **sign** `ε`
    (LMFDB `lfunction.sign`). The degree, the first entry of the LMFDB's quadruple, is
    `AnalyticLFunction.SelbergData.degree`. As in the LMFDB, the spectral parameters are normalised
    so that each `re μⱼ` is `0` or `1` (assuming Selberg's eigenvalue conjecture), each `re νₖ` is a
    positive integer or half-integer, and `∑ μⱼ + 2 ∑ νₖ` is real; the LMFDB states that this makes
    the data of a functional equation unique, which is not proved here. 
    conductor : ℕ
    The conductor `N`. 
    μ : Multiset ℂ
    The spectral parameters `μⱼ` of the factors `Γ_ℝ(s + μⱼ)`. 
    ν : Multiset ℂ
    The spectral parameters `νₖ` of the factors `Γ_ℂ(s + νₖ)`. 
    sign : ℂ
    The sign `ε`. 
    conductor_pos : 0 < self.conductor
    re_eq_zero_or_one_of_mem_μ : ∀ x ∈ self.μ, x.re = 0 ∨ x.re = 1
    exists_two_mul_re_eq_of_mem_ν : ∀ x ∈ self.ν, ∃ k, 0 < k ∧ 2 * x.re = ↑k
    im_sum_add_two_mul_sum : (self.μ.sum + 2 * self.ν.sum).im = 0
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    theorem AnalyticLFunction.eqOn_toFun_of_coeff_eq (L : AnalyticLFunction)
      {L' : AnalyticLFunction}
      (h : ∀ (n : ℕ), n ≠ 0 → L.coeff n = L'.coeff n) :
      Set.EqOn L.toFun L'.toFun {1}ᶜ
    theorem AnalyticLFunction.eqOn_toFun_of_coeff_eq
      (L : AnalyticLFunction)
      {L' : AnalyticLFunction}
      (h :
        ∀ (n : ℕ),
          n ≠ 0 → L.coeff n = L'.coeff n) :
      Set.EqOn L.toFun L'.toFun {1}ᶜ
    The continuation of an analytic L-function is determined by its Dirichlet coefficients. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/RiemannZeta.lean
    complete
    def AnalyticLFunction.zeta : AnalyticLFunction
    def AnalyticLFunction.zeta : AnalyticLFunction
    The **Riemann zeta function** (LMFDB `lfunction.riemann`) as an analytic L-function: the
    Dirichlet series `∑ n ^ (-s)`, with Euler factors `(1 - p ^ (-s))⁻¹`, continued by `riemannZeta`
    and completed by `completedRiemannZeta`, with Selberg data `(1, 1, (0 : ), 1)`. 
  • defdefined in Mathlib/NumberTheory/LSeries/Basic.lean
    complete
    def LSeries (f : ℕ → ℂ) (s : ℂ) : ℂ
    def LSeries (f : ℕ → ℂ) (s : ℂ) : ℂ
    The value of the L-series of the sequence `f` at the point `s`
    if it converges absolutely there, and `0` otherwise. 
Definition1.110
Statement uses 2
Statement dependency previews
Preview
Definition 1.109
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 3.6
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Analytic rank. (LMFDB)

The analytic rank of an L-function L(s) is its order of vanishing at its central point.

When the analytic rank r is positive, the value listed in the LMFDB is typically an upper bound that is believed to be tight (in the sense that there are known to be r zeroes located very near to the central point).

Depends on: Definition 1.112 Definition 1.109

Lean code for Definition1.110●5 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/AnalyticRank.lean
    complete
    def AnalyticLFunction.analyticRank (L : AnalyticLFunction) : ℕ
    def AnalyticLFunction.analyticRank
      (L : AnalyticLFunction) : ℕ
    The **analytic rank** (LMFDB `lfunction.analytic_rank`) of an analytic L-function: the order
    of vanishing of its continuation at its central point `s = 1 / 2` (LMFDB
    `lfunction.central_point`). It is also the order of vanishing at `(w + 1) / 2` of the arithmetic
    normalisation of any weight `w` (`analyticOrderNatAt_arithmeticNormalization`). The LMFDB's stored
    values are typically upper bounds believed to be tight, a convention of its data. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/AnalyticRank.lean
    complete
    theorem AnalyticLFunction.natCast_analyticRank (L : AnalyticLFunction) :
      ↑L.analyticRank = analyticOrderAt L.toFun (1 / 2)
    theorem AnalyticLFunction.natCast_analyticRank
      (L : AnalyticLFunction) :
      ↑L.analyticRank =
        analyticOrderAt L.toFun (1 / 2)
    The analytic rank is the order of vanishing at the central point, which is finite. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/AnalyticRank.lean
    complete
    theorem AnalyticLFunction.iteratedDeriv_analyticRank_ne_zero
      (L : AnalyticLFunction) :
      iteratedDeriv L.analyticRank L.toFun (1 / 2) ≠ 0
    theorem AnalyticLFunction.iteratedDeriv_analyticRank_ne_zero
      (L : AnalyticLFunction) :
      iteratedDeriv L.analyticRank L.toFun
          (1 / 2) ≠
        0
    The derivative of order the analytic rank does not vanish at the central point. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/AnalyticRank.lean
    complete
    theorem AnalyticLFunction.analyticOrderNatAt_arithmeticNormalization
      (L : AnalyticLFunction) (w : ℕ) :
      analyticOrderNatAt (L.arithmeticNormalization w) ((↑w + 1) / 2) =
        L.analyticRank
    theorem AnalyticLFunction.analyticOrderNatAt_arithmeticNormalization
      (L : AnalyticLFunction) (w : ℕ) :
      analyticOrderNatAt
          (L.arithmeticNormalization w)
          ((↑w + 1) / 2) =
        L.analyticRank
    The analytic rank is the order of vanishing of the arithmetic normalisation of weight `w` at
    its central point `(w + 1) / 2`. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/AnalyticRank.lean
    complete
    theorem AnalyticLFunction.analyticRank_congr (L : AnalyticLFunction)
      {L' : AnalyticLFunction}
      (h : ∀ (n : ℕ), n ≠ 0 → L.coeff n = L'.coeff n) :
      L.analyticRank = L'.analyticRank
    theorem AnalyticLFunction.analyticRank_congr
      (L : AnalyticLFunction)
      {L' : AnalyticLFunction}
      (h :
        ∀ (n : ℕ),
          n ≠ 0 → L.coeff n = L'.coeff n) :
      L.analyticRank = L'.analyticRank
    The analytic rank only depends on the Dirichlet coefficients. 
Definition1.111
uses 1used by 1✓L∃∀N

Arithmetic L-function. (LMFDB)

An L-function L(s) = \sum_{n=1}^{\infty} a_n n^{-s} is called arithmetic if its Dirichlet coefficients a_n are algebraic numbers.

Depends on: Definition 1.109

Lean code for Definition1.111●2 definitions
  • defdefined in Mathlib/RingTheory/Algebraic/Defs.lean
    complete
    def IsAlgebraic.{u, v} (R : Type u) {A : Type v} [CommRing R] [Ring A]
      [Algebra R A] (x : A) : Prop
    def IsAlgebraic.{u, v} (R : Type u)
      {A : Type v} [CommRing R] [Ring A]
      [Algebra R A] (x : A) : Prop
    An element of an R-algebra is algebraic over R if it is a root of a nonzero polynomial
    with coefficients in R. 
  • defdefined in Mathlib/NumberTheory/LSeries/Basic.lean
    complete
    def LSeries (f : ℕ → ℂ) (s : ℂ) : ℂ
    def LSeries (f : ℕ → ℂ) (s : ℂ) : ℂ
    The value of the L-series of the sequence `f` at the point `s`
    if it converges absolutely there, and `0` otherwise. 
Definition1.112
Statement uses 3
Statement dependency previews
Preview
Definition 1.109
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 5
Reverse dependency previews
Preview
Definition 1.110
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
XL∃∀N

Central point of an L-function. (LMFDB)

The central point of an L-function is the point on the real axis of the critical line. Equivalently, it is the fixed point of the functional equation.

In the analytic normalization, the central point is s=1/2, in the arithmetic normalization, it is s=\frac{w+1}{2}, where w is the weight of the L-function.

Depends on: Definition 1.109 Definition 1.113 Definition 1.117

Definition1.113
Statement uses 2
Statement dependency previews
Preview
Definition 1.109
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1XL∃∀N

Critical line of an L-function. (LMFDB)

The critical line of an L-function is the line of symmetry of its functional equation.

In the analytic normalization, the functional equation relates s to 1-s and the critical line is the line \Re(s) = \frac12.

In the arithmetic normalization, the functional equation relates s to 1 + w - s, where w is the motivic weight. In that normalization the critical line is \Re(s) = \frac{1+w}2.

Depends on: Definition 1.109 Definition 1.117

Definition1.114
uses 0used by 1✓L∃∀N

Dirichlet series. (LMFDB)

A Dirichlet series is a formal series of the form F(s) = {\displaystyle \sum_{n=1}^{\infty} \frac{a_n}{ n^{s}}}, where a_n \in {\mathbb{C}}.

Lean code for Definition1.114●3 definitions
  • defdefined in Mathlib/NumberTheory/LSeries/Basic.lean
    complete
    def LSeries (f : ℕ → ℂ) (s : ℂ) : ℂ
    def LSeries (f : ℕ → ℂ) (s : ℂ) : ℂ
    The value of the L-series of the sequence `f` at the point `s`
    if it converges absolutely there, and `0` otherwise. 
  • defdefined in Mathlib/NumberTheory/LSeries/Basic.lean
    complete
    def LSeries.term (f : ℕ → ℂ) (s : ℂ) (n : ℕ) : ℂ
    def LSeries.term (f : ℕ → ℂ) (s : ℂ) (n : ℕ) :
      ℂ
    The `n`th term of the L-series of `f` evaluated at `s`. We set it to zero when `n = 0`. 
  • defdefined in Mathlib/NumberTheory/ArithmeticFunction/Defs.lean
    complete
    def ArithmeticFunction.{u_1} (R : Type u_1) [Zero R] : Type u_1
    def ArithmeticFunction.{u_1} (R : Type u_1)
      [Zero R] : Type u_1
    An arithmetic function is a function from `ℕ` that maps 0 to 0. In the literature, they are
    often instead defined as functions from `ℕ+`. Multiplication on `ArithmeticFunctions` is by
    Dirichlet convolution. 
Definition1.115
uses 1used by 1✓L∃∀N

Dual of an L-function. (LMFDB)

The dual of an L-function L(s) = \sum_{n=1}^{\infty} \frac{a_n}{n^s} is the complex conjugate \bar{L}(s) = \sum_{n=1}^{\infty} \frac{\bar{a_n}}{n^s}.

Depends on: Definition 1.109

Lean code for Definition1.115●2 definitions
  • defdefined in Mathlib/NumberTheory/LSeries/Basic.lean
    complete
    def LSeries (f : ℕ → ℂ) (s : ℂ) : ℂ
    def LSeries (f : ℕ → ℂ) (s : ℂ) : ℂ
    The value of the L-series of the sequence `f` at the point `s`
    if it converges absolutely there, and `0` otherwise. 
  • defdefined in Mathlib/Algebra/Star/Basic.lean
    complete
    def starRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R
    def starRingEnd.{u} (R : Type u)
      [CommSemiring R] [StarRing R] : R →+* R
    `star` as a ring endomorphism, for commutative `R`. This is used to denote complex
    conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`.
    
    Note that this is the preferred form (over `starRingAut`, available under the same hypotheses)
    because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for
    `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the
    case for `(↑starRingAut : R →* R)`. 
Definition1.116
uses 0
Used by 2
Reverse dependency previews
Preview
Definition 1.109
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Euler product of an L-function. (LMFDB)

It is expected that the Euler product of an L-function of degree d and conductor N can be written as

L(s)=\prod_p L_p(s)

where for p\nmid N

L_p(s)=\prod_{n=1}^d \left( 1-\frac{\alpha_{n}(p)}{p^s}\right)^{-1} \text{ with } |\alpha_{n}(p)|=1

and for p\mid N,

L_p(s)=\prod_{n=1}^{d_p}\left( 1-\frac{\beta_{n}(p)}{p^s}\right)^{-1} \text{ where } d_p < d \text{ and } |\beta_n(p)|\le 1.

The functions L_p(s) are called Euler factors (or local factors).

Lean code for Definition1.116●3 declarations
  • defdefined in Mathlib/NumberTheory/ArithmeticFunction/LFunction.lean
    complete
    def ArithmeticFunction.eulerProduct.{u_1, u_2} {ι : Type u_1} {R : Type u_2}
      [CommSemiring R] (f : ι → ArithmeticFunction R) : ArithmeticFunction R
    def ArithmeticFunction.eulerProduct.{u_1, u_2}
      {ι : Type u_1} {R : Type u_2}
      [CommSemiring R]
      (f : ι → ArithmeticFunction R) :
      ArithmeticFunction R
    The Euler product of a family of arithmetic functions. Defined as a `tprod`, but see
    `tendsTo_eulerProduct_of_tendsTo` for the outward facing `eulerProduct` API. 
  • defdefined in Mathlib/NumberTheory/ArithmeticFunction/LFunction.lean
    complete
    def ArithmeticFunction.ofPowerSeries.{u_1} {R : Type u_1} [CommSemiring R]
      (q : ℕ) : PowerSeries R →ₐ[R] ArithmeticFunction R
    def ArithmeticFunction.ofPowerSeries.{u_1}
      {R : Type u_1} [CommSemiring R]
      (q : ℕ) :
      PowerSeries R →ₐ[R] ArithmeticFunction R
    The arithmetic function corresponding to the Dirichlet series `f(q⁻ˢ)`.
    For example, if `f = 1 + X + X² + ...` and `q = p`, then `f(q⁻ˢ) = 1 + p⁻ˢ + p⁻²ˢ + ...`.
    
    If `q ≤ 1` then `k ↦ q ^ k` is not injective, so we use the junk value `f.constantCoeff`. 
  • theoremdefined in Mathlib/NumberTheory/EulerProduct/Basic.lean
    complete
    theorem EulerProduct.eulerProduct_tprod.{u_1} {R : Type u_1} [NormedCommRing R]
      {f : ℕ → R} [CompleteSpace R] (hf₁ : f 1 = 1)
      (hmul : ∀ {m n : ℕ}, m.Coprime n → f (m * n) = f m * f n)
      (hsum : Summable fun x => ‖f x‖) (hf₀ : f 0 = 0) :
      ∏' (p : Nat.Primes), ∑' (e : ℕ), f (↑p ^ e) = ∑' (n : ℕ), f n
    theorem EulerProduct.eulerProduct_tprod.{u_1}
      {R : Type u_1} [NormedCommRing R]
      {f : ℕ → R} [CompleteSpace R]
      (hf₁ : f 1 = 1)
      (hmul :
        ∀ {m n : ℕ},
          m.Coprime n → f (m * n) = f m * f n)
      (hsum : Summable fun x => ‖f x‖)
      (hf₀ : f 0 = 0) :
      ∏' (p : Nat.Primes),
          ∑' (e : ℕ), f (↑p ^ e) =
        ∑' (n : ℕ), f n
    The *Euler Product* for multiplicative (on coprime arguments) functions.
    
    If `f : ℕ → R`, where `R` is a complete normed commutative ring, `f 0 = 0`, `f 1 = 1`, `f` is
    multiplicative on coprime arguments, and `‖f ·‖` is summable, then
    `∏' p : {p : ℕ | p.Prime}, ∑' e, f (p ^ e) = ∑' n, f n`. 
Definition1.117
Statement uses 2
Statement dependency previews
Preview
Definition 1.118
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 7
Reverse dependency previews
Preview
Definition 1.109
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Functional equation of an L-function. (LMFDB)

All known analytic L-functions have a functional equation that can be written in the form

\Lambda(s) := N^{s/2} \prod_{j=1}^J \Gamma_{\mathbb{R}}(s+\mu_j) \prod_{k=1}^K \Gamma_{\mathbb{C}}(s+\nu_k) \cdot L(s) = \varepsilon \overline{\Lambda}(1-s),

where N is an integer, \Gamma_{\mathbb{R}} and \Gamma_{\mathbb{C}} are defined in terms of the \Gamma-function, \mathrm{Re}(\mu_j) = 0 \ \mathrm{or} \ 1 (assuming Selberg's eigenvalue conjecture), and \mathrm{Re}(\nu_k) is a positive integer or half-integer,

\sum \mu_j + 2 \sum \nu_k \ \ \ \ \text{is real},

and \varepsilon is the sign of the functional equation. With those restrictions on the spectral parameters, the data in the functional equation is specified uniquely. The integer d = J + 2 K is the degree of the L-function. The integer N is the conductor (or level) of the L-function. The pair [J,K] is the signature of the L-function. The parameters in the functional equation can be used to make up the 4-tuple called the Selberg data.

The axioms of the Selberg class are less restrictive than given above.

Note that the functional equation above has the central point at s=1/2, and relates s\leftrightarrow 1-s.

For many L-functions there is another normalization which is natural. The corresponding functional equation relates s\leftrightarrow w+1-s for some positive integer w, called the motivic weight of the L-function. The central point is at s=(w+1)/2, and the arithmetically normalized Dirichlet coefficients a_n n^{w/2} are algebraic integers.

Depends on: Definition 1.118 Definition 1.149

Lean code for Definition1.117●5 declarations
  • structure(8 fields)defined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    structure AnalyticLFunction.SelbergData : Type
    structure AnalyticLFunction.SelbergData : Type
    The **Selberg data** (LMFDB `lfunction.selbergdata`) of a functional equation
    `Λ(s) = N ^ (s / 2) ∏ⱼ Γ_ℝ(s + μⱼ) ∏ₖ Γ_ℂ(s + νₖ) L(s) = ε conj (Λ (1 - conj s))`: the
    **conductor** `N` (LMFDB `lfunction.conductor`), the **spectral parameters** `μⱼ` of the factors
    `Γ_ℝ` and `νₖ` of the factors `Γ_ℂ` (LMFDB `lfunction.spectral_parameters`), and the **sign** `ε`
    (LMFDB `lfunction.sign`). The degree, the first entry of the LMFDB's quadruple, is
    `AnalyticLFunction.SelbergData.degree`. As in the LMFDB, the spectral parameters are normalised
    so that each `re μⱼ` is `0` or `1` (assuming Selberg's eigenvalue conjecture), each `re νₖ` is a
    positive integer or half-integer, and `∑ μⱼ + 2 ∑ νₖ` is real; the LMFDB states that this makes
    the data of a functional equation unique, which is not proved here. 
    conductor : ℕ
    The conductor `N`. 
    μ : Multiset ℂ
    The spectral parameters `μⱼ` of the factors `Γ_ℝ(s + μⱼ)`. 
    ν : Multiset ℂ
    The spectral parameters `νₖ` of the factors `Γ_ℂ(s + νₖ)`. 
    sign : ℂ
    The sign `ε`. 
    conductor_pos : 0 < self.conductor
    re_eq_zero_or_one_of_mem_μ : ∀ x ∈ self.μ, x.re = 0 ∨ x.re = 1
    exists_two_mul_re_eq_of_mem_ν : ∀ x ∈ self.ν, ∃ k, 0 < k ∧ 2 * x.re = ↑k
    im_sum_add_two_mul_sum : (self.μ.sum + 2 * self.ν.sum).im = 0
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    def AnalyticLFunction.SelbergData.gammaFactor
      (D : AnalyticLFunction.SelbergData) (s : ℂ) : ℂ
    def AnalyticLFunction.SelbergData.gammaFactor
      (D : AnalyticLFunction.SelbergData)
      (s : ℂ) : ℂ
    The **gamma factor** `∏ⱼ Γ_ℝ(s + μⱼ) ∏ₖ Γ_ℂ(s + νₖ)` (LMFDB `lfunction.infinity_factor`) of a
    functional equation, the product of its shifted Deligne gamma factors `Γ_ℝ` and `Γ_ℂ` (LMFDB
    `lfunction.gamma_factor`). 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    def AnalyticLFunction.SelbergData.degree
      (D : AnalyticLFunction.SelbergData) : ℕ
    def AnalyticLFunction.SelbergData.degree
      (D : AnalyticLFunction.SelbergData) : ℕ
    The **degree** `J + 2 K` (LMFDB `lfunction.degree`) of a functional equation with `J` factors
    `Γ_ℝ` and `K` factors `Γ_ℂ`. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    theorem AnalyticLFunction.completed_eq (self : AnalyticLFunction) {s : ℂ} :
      1 < s.re →
        self.completed s =
          ↑self.selbergData.conductor ^ (s / 2) *
              self.selbergData.gammaFactor s *
            self.toFun s
    theorem AnalyticLFunction.completed_eq
      (self : AnalyticLFunction) {s : ℂ} :
      1 < s.re →
        self.completed s =
          ↑self.selbergData.conductor ^
                (s / 2) *
              self.selbergData.gammaFactor s *
            self.toFun s
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    theorem AnalyticLFunction.completed_eq_sign_mul_conj (self : AnalyticLFunction)
      {s : ℂ} :
      s ≠ 0 →
        s ≠ 1 →
          self.completed s =
            self.selbergData.sign *
              (starRingEnd ℂ) (self.completed (1 - (starRingEnd ℂ) s))
    theorem AnalyticLFunction.completed_eq_sign_mul_conj
      (self : AnalyticLFunction) {s : ℂ} :
      s ≠ 0 →
        s ≠ 1 →
          self.completed s =
            self.selbergData.sign *
              (starRingEnd ℂ)
                (self.completed
                  (1 - (starRingEnd ℂ) s))
Definition1.118
uses 1used by 1✓L∃∀N

Gamma factors. (LMFDB)

The complex functions

\Gamma_{\R}(s) := \pi^{-s/2}\Gamma(s/2)\qquad\text{and}\qquad \Gamma_{\C}(s):= 2(2\pi)^{-s}\Gamma(s)

that appear in the functional equation of an L-function are known as gamma factors. Here \Gamma(s):=\int_0^\infty e^{-t}t^{s-1}dt is Euler's gamma function.

The gamma factors satisfy \Gamma_{\C}(s) = \Gamma_{\R}(s) \Gamma_{\R}(s + 1) and can also be viewed as "missing" factors of the Euler product of an L-function corresponding to (real or complex) archimedean places.

Depends on: Definition 1.116

Lean code for Definition1.118●3 declarations
  • defdefined in Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean
    complete
    def Complex.Gammaℝ (s : ℂ) : ℂ
    def Complex.Gammaℝ (s : ℂ) : ℂ
    Deligne's archimedean Gamma factor for a real infinite place.
    
    See "Valeurs de fonctions L et périodes d'intégrales" § 5.3. Note that this is not the same as
    `Real.Gamma`; in particular it is a function `ℂ → ℂ`. 
  • defdefined in Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean
    complete
    def Complex.Gammaℂ (s : ℂ) : ℂ
    def Complex.Gammaℂ (s : ℂ) : ℂ
    Deligne's archimedean Gamma factor for a complex infinite place.
    
    See "Valeurs de fonctions L et périodes d'intégrales" § 5.3. (Some authors omit the factor of 2).
    Note that this is not the same as `Complex.Gamma`. 
  • theoremdefined in Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean
    complete
    theorem Complex.Gammaℝ_mul_Gammaℝ_add_one (s : ℂ) :
      s.Gammaℝ * (s + 1).Gammaℝ = s.Gammaℂ
    theorem Complex.Gammaℝ_mul_Gammaℝ_add_one
      (s : ℂ) :
      s.Gammaℝ * (s + 1).Gammaℝ = s.Gammaℂ
    Reformulation of the doubling formula in terms of `Gammaℝ`. 
Definition1.119
Statement uses 2
Statement dependency previews
Preview
Definition 1.111
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 3.6
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Leading coefficient. (LMFDB)

The leading coefficient of an arithmetic L-function is the first nonzero coefficient of its Laurent series expansion at the central point.

Depends on: Definition 1.111 Definition 1.112

Lean code for Definition1.119●5 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/AnalyticRank.lean
    complete
    def AnalyticLFunction.leadingCoeff (L : AnalyticLFunction) : ℂ
    def AnalyticLFunction.leadingCoeff
      (L : AnalyticLFunction) : ℂ
    The **leading coefficient** (LMFDB `lfunction.leading_coeff`) of an analytic L-function: the
    first nonzero coefficient `L⁽ʳ⁾(1 / 2) / r!` of the Taylor expansion of its continuation at its
    central point `s = 1 / 2`, where `r` is the analytic rank (`leadingCoeff_eq_iteratedDeriv`). It is
    also the leading coefficient at `(w + 1) / 2` of the arithmetic normalisation of any weight `w`
    (`meromorphicTrailingCoeffAt_arithmeticNormalization`). The LMFDB defines it for arithmetic
    L-functions; the definition makes sense for all. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/AnalyticRank.lean
    complete
    theorem AnalyticLFunction.leadingCoeff_eq_iteratedDeriv
      (L : AnalyticLFunction) :
      L.leadingCoeff =
        iteratedDeriv L.analyticRank L.toFun (1 / 2) /
          ↑L.analyticRank.factorial
    theorem AnalyticLFunction.leadingCoeff_eq_iteratedDeriv
      (L : AnalyticLFunction) :
      L.leadingCoeff =
        iteratedDeriv L.analyticRank L.toFun
            (1 / 2) /
          ↑L.analyticRank.factorial
    The leading coefficient is `L⁽ʳ⁾(1 / 2) / r!`, where `r` is the analytic rank. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/AnalyticRank.lean
    complete
    theorem AnalyticLFunction.meromorphicTrailingCoeffAt_arithmeticNormalization
      (L : AnalyticLFunction) (w : ℕ) :
      meromorphicTrailingCoeffAt (L.arithmeticNormalization w)
          ((↑w + 1) / 2) =
        L.leadingCoeff
    theorem AnalyticLFunction.meromorphicTrailingCoeffAt_arithmeticNormalization
      (L : AnalyticLFunction) (w : ℕ) :
      meromorphicTrailingCoeffAt
          (L.arithmeticNormalization w)
          ((↑w + 1) / 2) =
        L.leadingCoeff
    The leading coefficient is the leading coefficient of the arithmetic normalisation of weight
    `w` at its central point `(w + 1) / 2`. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/AnalyticRank.lean
    complete
    theorem AnalyticAt.meromorphicTrailingCoeffAt_eq_iteratedDeriv_div_factorial
      {f : ℂ → ℂ} {x : ℂ} {n : ℕ} (hf : AnalyticAt ℂ f x)
      (hn : analyticOrderAt f x = ↑n) :
      meromorphicTrailingCoeffAt f x = iteratedDeriv n f x / ↑n.factorial
    theorem AnalyticAt.meromorphicTrailingCoeffAt_eq_iteratedDeriv_div_factorial
      {f : ℂ → ℂ} {x : ℂ} {n : ℕ}
      (hf : AnalyticAt ℂ f x)
      (hn : analyticOrderAt f x = ↑n) :
      meromorphicTrailingCoeffAt f x =
        iteratedDeriv n f x / ↑n.factorial
    The trailing coefficient of a function analytic at `x` of finite order `n` there is its `n`-th
    Taylor coefficient `f⁽ⁿ⁾(x) / n!`. 
  • defdefined in Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean
    complete
    def meromorphicTrailingCoeffAt.{u_1, u_2} {𝕜 : Type u_1}
      [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E]
      [NormedSpace 𝕜 E] (f : 𝕜 → E) (x : 𝕜) : E
    def meromorphicTrailingCoeffAt.{u_1, u_2}
      {𝕜 : Type u_1}
      [NontriviallyNormedField 𝕜]
      {E : Type u_2} [NormedAddCommGroup E]
      [NormedSpace 𝕜 E] (f : 𝕜 → E) (x : 𝕜) :
      E
    If `f` is meromorphic of finite order at a point `x`, the trailing coefficient is defined as the
    (unique!) value `g x` for a presentation of `f` in the form `(z - x) ^ order • g z` with `g`
    analytic at `x`. In all other cases, the trailing coefficient is defined to be zero.
    
Definition1.120
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 3.77
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Normalization of an L-function. (LMFDB)

In its arithmetic normalization, an L-function L(s) of weight w has its central value at s=\frac{w+1}{2} and the functional equation relates s to 1 + w - s. For L-functions defined by an Euler product \prod_p L_p(s)^{-1} where the coefficients of L_p are algebraic integers, this is the usual normalization implied by the definition.

The analytic normalization of an L-function is defined by L_{an}(s):=L(s+w/2), where L(s) is the L-function in its arithmetic normalization. This moves the central value to s=1/2, and the functional equation of L_{an}(s) relates s to 1-s.

Depends on: Definition 1.117

Lean code for Definition1.120●5 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    def AnalyticLFunction.arithmeticNormalization (L : AnalyticLFunction)
      (w : ℕ) (s : ℂ) : ℂ
    def AnalyticLFunction.arithmeticNormalization
      (L : AnalyticLFunction) (w : ℕ)
      (s : ℂ) : ℂ
    The L-function `s ↦ L(s - w / 2)` in its **arithmetic normalisation** of weight `w` (LMFDB
    `lfunction.normalization`), whose central point is `(w + 1) / 2` and whose functional equation
    relates `s` and `1 + w - s`. Conversely, `L` is the **analytic normalisation**
    `L(s) = L_arith(s + w / 2)` of it. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    def AnalyticLFunction.arithmeticCoeff (L : AnalyticLFunction) (w n : ℕ) : ℂ
    def AnalyticLFunction.arithmeticCoeff
      (L : AnalyticLFunction) (w n : ℕ) : ℂ
    The Dirichlet coefficients `aₙ n ^ (w / 2)` of the arithmetic normalisation of weight `w` of an
    analytic L-function with Dirichlet coefficients `aₙ`. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    theorem AnalyticLFunction.arithmeticNormalization_eq_LSeries
      (L : AnalyticLFunction) (w : ℕ) {s : ℂ} (hs : 1 + ↑w / 2 < s.re) :
      L.arithmeticNormalization w s = LSeries (L.arithmeticCoeff w) s
    theorem AnalyticLFunction.arithmeticNormalization_eq_LSeries
      (L : AnalyticLFunction) (w : ℕ) {s : ℂ}
      (hs : 1 + ↑w / 2 < s.re) :
      L.arithmeticNormalization w s =
        LSeries (L.arithmeticCoeff w) s
    The arithmetic normalisation of weight `w` is the Dirichlet series with the coefficients
    `aₙ n ^ (w / 2)` for `re s > 1 + w / 2`. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    theorem AnalyticLFunction.completed_sub_eq_sign_mul_conj (L : AnalyticLFunction)
      (w : ℕ) {s : ℂ} (hs₀ : s ≠ ↑w / 2) (hs₁ : s ≠ 1 + ↑w / 2) :
      L.completed (s - ↑w / 2) =
        L.sign *
          (starRingEnd ℂ)
            (L.completed (1 + ↑w - (starRingEnd ℂ) s - ↑w / 2))
    theorem AnalyticLFunction.completed_sub_eq_sign_mul_conj
      (L : AnalyticLFunction) (w : ℕ) {s : ℂ}
      (hs₀ : s ≠ ↑w / 2)
      (hs₁ : s ≠ 1 + ↑w / 2) :
      L.completed (s - ↑w / 2) =
        L.sign *
          (starRingEnd ℂ)
            (L.completed
              (1 + ↑w - (starRingEnd ℂ) s -
                ↑w / 2))
    The functional equation in the arithmetic normalisation of weight `w` relates `s` and
    `1 + w - s`: the completion `Λ(s - w / 2)` equals `ε conj (Λ ((1 + w - conj s) - w / 2))`. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    def AnalyticLFunction.motivicWeight (L : AnalyticLFunction) : ℕ
    def AnalyticLFunction.motivicWeight
      (L : AnalyticLFunction) : ℕ
    The **motivic weight** (LMFDB `lfunction.motivic_weight`) of an arithmetic L-function: the
    least `w` such that every coefficient `aₙ n ^ (w / 2)` with `n ≥ 1` is an algebraic integer. When
    there is no such `w` it takes the junk value `0`. 
Definition1.121
uses 1used by 1✓L∃∀N

Generalized Riemann hypothesis. (LMFDB)

The Riemann hypothesis is the assertion that if \rho is a zero of an analytic L-function then \mathrm{Re}(\rho)>0 implies that \mathrm{Re}(\rho)=1/2.

Depends on: Definition 1.109

Lean code for Definition1.121●5 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/RiemannHypothesis.lean
    complete
    def AnalyticLFunction.RiemannHypothesis (L : AnalyticLFunction) : Prop
    def AnalyticLFunction.RiemannHypothesis
      (L : AnalyticLFunction) : Prop
    The **Riemann hypothesis** (LMFDB `lfunction.rh`) for an analytic L-function: its zeros `ρ`
    with `re ρ > 0` lie on the critical line `re ρ = 1 / 2`. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/RiemannHypothesis.lean
    complete
    def GeneralizedRiemannHypothesis : Prop
    def GeneralizedRiemannHypothesis : Prop
    The **generalized Riemann hypothesis** (LMFDB `lfunction.rh`): every analytic L-function
    satisfies the Riemann hypothesis, that is, all of its zeros `ρ` with `re ρ > 0` satisfy
    `re ρ = 1 / 2`. 
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/RiemannHypothesis.lean
    complete
    def AnalyticLFunction.zeros (L : AnalyticLFunction) : Set ℂ
    def AnalyticLFunction.zeros
      (L : AnalyticLFunction) : Set ℂ
    The **zeros** (LMFDB `lfunction.zeros`) of an analytic L-function: the points where its
    continuation, a meromorphic function on `ℂ`, has positive order. Away from the only possible pole
    `s = 1` they are the points where the continuation vanishes (`mem_zeros_iff`); using the order
    makes the junk value at a pole irrelevant. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/RiemannZeta.lean
    complete
    theorem riemannHypothesis_iff_zeta :
      RiemannHypothesis ↔ AnalyticLFunction.zeta.RiemannHypothesis
    theorem riemannHypothesis_iff_zeta :
      RiemannHypothesis ↔
        AnalyticLFunction.zeta.RiemannHypothesis
    Mathlib's `RiemannHypothesis` is the Riemann hypothesis (LMFDB `lfunction.rh`) for the Riemann
    zeta function as an analytic L-function. 
  • defdefined in Mathlib/NumberTheory/LSeries/RiemannZeta.lean
    complete
    def RiemannHypothesis : Prop
    def RiemannHypothesis : Prop
    A formal statement of the **Riemann hypothesis** – constructing a term of this type is worth a
    million dollars. 
Definition1.122
uses 0used by 1✓L∃∀N

Self-dual L-function. (LMFDB)

An L-function L(s) = \sum_{n=1}^{\infty} \frac{a_n}{n^s} is called self-dual if its Dirichlet coefficients a_n are real.

Lean code for Definition1.122●3 declarations
  • defdefined in Mathlib/NumberTheory/LSeries/Basic.lean
    complete
    def LSeries (f : ℕ → ℂ) (s : ℂ) : ℂ
    def LSeries (f : ℕ → ℂ) (s : ℂ) : ℂ
    The value of the L-series of the sequence `f` at the point `s`
    if it converges absolutely there, and `0` otherwise. 
  • defdefined in Mathlib/Algebra/Star/Basic.lean
    complete
    def starRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R
    def starRingEnd.{u} (R : Type u)
      [CommSemiring R] [StarRing R] : R →+* R
    `star` as a ring endomorphism, for commutative `R`. This is used to denote complex
    conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`.
    
    Note that this is the preferred form (over `starRingAut`, available under the same hypotheses)
    because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for
    `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the
    case for `(↑starRingAut : R →* R)`. 
  • theoremdefined in Mathlib/Basic/Complex/Basic.lean
    complete
    theorem Complex.conj_eq_iff_real {z : ℂ} : (starRingEnd ℂ) z = z ↔ ∃ r, z = ↑r
    theorem Complex.conj_eq_iff_real {z : ℂ} :
      (starRingEnd ℂ) z = z ↔ ∃ r, z = ↑r
Definition1.123
uses 1used by 1✓L∃∀N

Sign of the functional equation. (LMFDB)

The sign of the functional equation of an analytic L-function, also called the root number, is the complex number \varepsilon that appears in the functional equation of \Lambda(s)=\varepsilon \overline{\Lambda}(1-s). The sign appears as the 4th entry in the quadruple known as the Selberg data.

Depends on: Definition 1.117

Lean code for Definition1.123●4 declarations
  • defdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    def AnalyticLFunction.sign (L : AnalyticLFunction) : ℂ
    def AnalyticLFunction.sign
      (L : AnalyticLFunction) : ℂ
    The **sign** `ε` (LMFDB `lfunction.sign`, `lfunction.root_number`) of the functional equation
    `Λ(s) = ε conj (Λ (1 - conj s))` of an analytic L-function, also called its root number. 
  • abbrevdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    abbrev AnalyticLFunction.SelbergData.sign
      (self : AnalyticLFunction.SelbergData) : ℂ
    abbrev AnalyticLFunction.SelbergData.sign
      (self : AnalyticLFunction.SelbergData) :
      ℂ
    The sign `ε`. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    theorem AnalyticLFunction.norm_sign (L : AnalyticLFunction) : ‖L.sign‖ = 1
    theorem AnalyticLFunction.norm_sign
      (L : AnalyticLFunction) : ‖L.sign‖ = 1
    The sign of the functional equation of an analytic L-function has absolute value `1`. 
  • theoremdefined in LeanBridge/ForMathlib/NumberTheory/LFunction/Basic.lean
    complete
    theorem AnalyticLFunction.completed_eq_sign_mul_conj (self : AnalyticLFunction)
      {s : ℂ} :
      s ≠ 0 →
        s ≠ 1 →
          self.completed s =
            self.selbergData.sign *
              (starRingEnd ℂ) (self.completed (1 - (starRingEnd ℂ) s))
    theorem AnalyticLFunction.completed_eq_sign_mul_conj
      (self : AnalyticLFunction) {s : ℂ} :
      s ≠ 0 →
        s ≠ 1 →
          self.completed s =
            self.selbergData.sign *
              (starRingEnd ℂ)
                (self.completed
                  (1 - (starRingEnd ℂ) s))
Definition1.124
uses 0used by 1✓L∃∀N

Dedekind eta function. (LMFDB)

We define the Dedekind eta function \eta(z) by the formula

\eta(z)=q^{1/24}\prod_{n\geq1}(1-q^n),

where q=e^{2\pi iz}.

It is related to the Discriminant modular form via the formula

\Delta(z)=\eta^{24}(z).

Lean code for Definition1.124●1 definition
  • defdefined in Mathlib/NumberTheory/ModularForms/DedekindEta.lean
    complete
    def ModularForm.eta (z : ℂ) : ℂ
    def ModularForm.eta (z : ℂ) : ℂ
    The eta function, whose value at z is `q^ 1 / 24 * ∏' 1 - q ^ (n + 1)` for `q = e ^ 2 π i z`. 
Definition1.125
uses 1
Used by 3
Reverse dependency previews
Preview
Definition 1.126
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Upper half-plane. (LMFDB)

The upper half-plane \mathcal{H} is the set of complex numbers whose imaginary part is positive, endowed with the topology induced from \C.

The completed upper half-plane \mathcal{H}^* is

\mathcal{H} \cup \Q \cup \{ \infty\},

endowed with the topology such that the disks tangent to the real line at r \in \Q form a fundamental system of neighbourhoods of r, and strips \{ z \in \mathcal{H} \mid \operatorname{Im} z > y \} \cup \{ \infty\}, y>0, form a fundamental system of neighbourhoods of \infty, which should therefore be thought of as i \infty.

The modular group \SL_2(\Z) acts properly discontinuously on \mathcal{H} and \mathcal{H}^* by the formula

\left( \begin{matrix} a & b \\ c& d \end{matrix} \right) \cdot z = \frac{az+b}{cz+d},

with the obvious conventions regarding \infty.

Depends on: Definition 1.94

Lean code for Definition1.125●5 declarations
  • inductive(2 constructors)defined in LeanBridge/ForMathlib/Analysis/Complex/UpperHalfPlane/Completed.lean
    complete
    inductive UpperHalfPlane.Completed : Type
    inductive UpperHalfPlane.Completed : Type
    The **completed upper half-plane** `ℍ* = ℍ ∪ ℚ ∪ {∞}` (LMFDB `mf.upper_half_plane`): the points
    of the upper half-plane `ℍ` together with the cusps, the points of `ℚ ∪ {∞} = OnePoint ℚ`. Its
    topology (`hasBasis_nhds_infty`, `hasBasis_nhds_ratCast`, `isOpenEmbedding_ofUpperHalfPlane`) and
    its action of `SL₂(ℤ)` (`smul_ofUpperHalfPlane`, `smul_cusp`) are those of the LMFDB. 
    UpperHalfPlane.Completed.ofUpperHalfPlane
      (z : UpperHalfPlane) : UpperHalfPlane.Completed
    A point of the upper half-plane. 
    UpperHalfPlane.Completed.cusp (c : OnePoint ℚ) :
      UpperHalfPlane.Completed
    A cusp: a rational number or `∞`. 
  • theoremdefined in LeanBridge/ForMathlib/Analysis/Complex/UpperHalfPlane/Completed.lean
    complete
    theorem UpperHalfPlane.Completed.hasBasis_nhds_ratCast (r : ℚ) :
      (nhds (UpperHalfPlane.Completed.cusp ↑r)).HasBasis (fun ρ => 0 < ρ)
        fun ρ =>
        insert (UpperHalfPlane.Completed.cusp ↑r)
          (UpperHalfPlane.Completed.ofUpperHalfPlane ''
            {z | dist (↑z) (↑r + ↑ρ * Complex.I) < ρ})
    theorem UpperHalfPlane.Completed.hasBasis_nhds_ratCast
      (r : ℚ) :
      (nhds
            (UpperHalfPlane.Completed.cusp
              ↑r)).HasBasis
        (fun ρ => 0 < ρ) fun ρ =>
        insert
          (UpperHalfPlane.Completed.cusp ↑r)
          (UpperHalfPlane.Completed.ofUpperHalfPlane ''
            {z |
              dist (↑z)
                  (↑r + ↑ρ * Complex.I) <
                ρ})
    **The tangent disks form a fundamental system of neighbourhoods of `r ∈ ℚ`**: the sets
    `D ∪ {r}`, for `D` the open disks tangent to the real line at `r`, of centre `r + iρ` and
    radius `ρ > 0`. 
  • theoremdefined in LeanBridge/ForMathlib/Analysis/Complex/UpperHalfPlane/Completed.lean
    complete
    theorem UpperHalfPlane.Completed.hasBasis_nhds_infty :
      (nhds (UpperHalfPlane.Completed.cusp OnePoint.infty)).HasBasis
        (fun y => 0 < y) fun y =>
        insert (UpperHalfPlane.Completed.cusp OnePoint.infty)
          (UpperHalfPlane.Completed.ofUpperHalfPlane '' {z | y < z.im})
    theorem UpperHalfPlane.Completed.hasBasis_nhds_infty :
      (nhds
            (UpperHalfPlane.Completed.cusp
              OnePoint.infty)).HasBasis
        (fun y => 0 < y) fun y =>
        insert
          (UpperHalfPlane.Completed.cusp
            OnePoint.infty)
          (UpperHalfPlane.Completed.ofUpperHalfPlane ''
            {z | y < z.im})
    **The strips form a fundamental system of neighbourhoods of `∞`**: the sets
    `{z | Im z > y} ∪ {∞}`, `y > 0`. 
  • theoremdefined in LeanBridge/ForMathlib/Analysis/Complex/UpperHalfPlane/Completed.lean
    complete
    theorem UpperHalfPlane.Completed.smul_cusp
      (γ : Matrix.SpecialLinearGroup (Fin 2) ℤ) (c : OnePoint ℚ) :
      γ • UpperHalfPlane.Completed.cusp c =
        UpperHalfPlane.Completed.cusp
          ((Matrix.SpecialLinearGroup.mapGL ℚ) γ • c)
    theorem UpperHalfPlane.Completed.smul_cusp
      (γ :
        Matrix.SpecialLinearGroup (Fin 2) ℤ)
      (c : OnePoint ℚ) :
      γ • UpperHalfPlane.Completed.cusp c =
        UpperHalfPlane.Completed.cusp
          ((Matrix.SpecialLinearGroup.mapGL ℚ)
              γ •
            c)
  • structure(2 fields)defined in Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean
    complete
    structure UpperHalfPlane : Type
    structure UpperHalfPlane : Type
    The open upper half plane, denoted as `ℍ` within the `UpperHalfPlane` namespace 
    coe : ℂ
    Canonical embedding of the upper half-plane into `ℂ`. 
    coe_im_pos : 0 < (↑self).im
Definition1.126
Statement uses 11
Statement dependency previews
Preview
Definition 1.12
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1XL∃∀N

Modular curve. (LMFDB)

For each open subgroup H \le \GL_2(\widehat{\Z}), there is a modular curve X_H, defined as a quotient of the full modular curve X_{\text{full}}(N), where N is the level of H. More precisely, H is the inverse image of a subgroup H_N \le \GL_2(\Z/N\Z), which acts on X_{\text{full}}(N) over \Q, and X_H is the quotient curve H_N \backslash X_{\text{full}}(N), also defined over \Q.

Like X_{\text{full}}(N), the curve X_H is smooth, projective, and integral, and when \det(H)=\widehat{\Z} it is also geometrically integral, but in general it may have several geometric components, as is the case for X_{\text{full}}(N) when N>2.

Rational points: When -1\in H the rational points of X_H consist of cusps and \Gal_{\Q}-stable isomorphism classes of pairs (E,[\iota]_H), where E is an elliptic curve over \Q, and [\iota]_H is an H-level structure on E. Such points exist precisely when the image of the adelic Galois representation \rho_E\colon \Gal_{\Q}\to \GL_2(\widehat{\Z}) is conjugate to a subgroup of H.

Complex points: The congruence subgroup \Gamma_H:= H\cap \SL_2(\Z) acts on the completed upper half-plane \overline{\mathfrak{h}}; one connected component of X_H(\C) is biholomorphic to the quotient \Gamma_H \backslash \overline{\mathfrak{h}}.

The curve X_H can alternatively be constructed as the coarse moduli space of the stack \mathcal X_H over \Q defined in Deligne-Rapoport . Both constructions of X_H can be carried out over any field of characteristic not dividing N, or even over \Z[1/N].

Depends on: Definition 1.12 Definition 1.24 Definition 4.12 Definition 3.1 Definition 3.13 Definition 1.67 Definition 1.72 Definition 1.125 Definition 1.127 Definition 1.128 Definition 1.129

Definition1.127
uses 0used by 1XL∃∀N

Cusps of a modular curve. (LMFDB)

The cusps on X_H are the points whose image under the canonical morphism j\colon X_H\to X(1)\simeq \mathbb{P}^1 is \infty. It is only the noncuspidal points that parametrize elliptic curves (with level structure).

The cusps of a modular curve X_H correspond to the complement of Y_H in X_H, where Y_H is the coarse moduli stack \mathcal M_H^0 defined in .

The rational cusps (also called \Q-cusps) are the cusps fixed by \Gal_{\Q}.

Definition1.128
Statement uses 6
Statement dependency previews
Preview
Definition 1.67
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Level structure of a modular curve. (LMFDB)

Let H be an open subgroup of \GL_2(\widehat{\Z}) of level N, let \pi_N\colon \GL_2(\widehat{\Z})\to \GL_2(\Z/N\Z) be the natural projection, and let E be an elliptic curve over a number field K.

An H-level structure on E is the H-orbit [\iota]_H:=\{ h\circ \iota\colon h\in \pi_N(H)\} of an isomorphism \iota\colon E[N]\overset{\sim}{\rightarrow}(\Z/N\Z)^2.

An H-level structure on E is rational if it lies in a \Gal_K-stable isomorphism class of pairs (E,[\iota]_H), where \sigma\in \Gal_K acts via (E,[\iota]_H)\mapsto (E^\sigma,[\iota\circ\sigma^{-1}]_H). Two pairs (E,[\iota]_H) and (E',[\iota']_H) are isomorphic if there is an isomorphism \phi\colon E\to E' that induces an isomorphism \phi_N\colon E[N]\to E'[N] for which \phi_N^*([\iota']_H) = [\iota]_H.

If E admits a rational H-level structure [\iota]_H then image of its adelic Galois representation \rho_E\colon \Gal_K\to \GL_2(\widehat{\Z}) is conjugate to a subgroup of H and the isomorphism class of (E,[\iota]_H) is a non-cuspidal K-rational point on the modular curve X_H.

When -1\in H every non-cuspidal K-rational point on X_H arises in this way. When -1\not\in H this is almost true, but there may be exceptions at points with j(E)=0,1728.

Invariants of a rational H-level structure include:

  • Cyclic \boldsymbol{N}-isogeny field degree: the minimal degree of an extension L/K over which the base change E_L admits a rational cyclic isogeny of degree N; equivalently, the index of the largest subgroup of H fixing a subgroup of (\Z/N\Z)^2 isomorphic to \Z/N\Z.

  • Cyclic \boldsymbol{N}-torsion field degree: the minimal degree of an extension L/K for which E_L has a rational point of order N; equivalently, the index of the largest subgroup of H that fixes a point of order N in (\Z/N\Z)^2.

  • N-torsion field degree the minimal degree of an extension L/K for which E[N]\subseteq E(L); this is simply the cardinality of the reduction of H to \GL_2(\Z/N\Z).

Depends on: Definition 3.1 Definition 3.5 Definition 3.13 Definition 1.67 Definition 1.72 Definition 2.1

Lean code for Definition1.128●5 definitions
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/EllipticCurve/LevelStructure.lean
    complete
    def WeierstrassCurve.levelStructure.{u_1} {F : Type u_1} [Field F]
      [DecidableEq (SeparableClosure F)] (W : WeierstrassCurve F) (N : ℕ)
      (H : Subgroup (GL (Fin 2) (ZMod N)))
      (ι :
        ↥(AddSubgroup.torsionBy
              (W.baseChange (SeparableClosure F)).toAffine.Point
              ↑N) ≃ₗ[ZMod N]
          Fin 2 → ZMod N) :
      Set
        (↥(AddSubgroup.torsionBy
              (W.baseChange (SeparableClosure F)).toAffine.Point
              ↑N) ≃ₗ[ZMod N]
          Fin 2 → ZMod N)
    def WeierstrassCurve.levelStructure.{u_1}
      {F : Type u_1} [Field F]
      [DecidableEq (SeparableClosure F)]
      (W : WeierstrassCurve F) (N : ℕ)
      (H : Subgroup (GL (Fin 2) (ZMod N)))
      (ι :
        ↥(AddSubgroup.torsionBy
              (W.baseChange
                    (SeparableClosure
                      F)).toAffine.Point
              ↑N) ≃ₗ[ZMod N]
          Fin 2 → ZMod N) :
      Set
        (↥(AddSubgroup.torsionBy
              (W.baseChange
                    (SeparableClosure
                      F)).toAffine.Point
              ↑N) ≃ₗ[ZMod N]
          Fin 2 → ZMod N)
    The **`H`-level structure** `[ι]_H` (LMFDB `modcurve.level_structure`) through an isomorphism
    `ι : E[N] ≃ (ℤ/Nℤ)²`, `E[N]` being the `N`-torsion of `W` over a separable closure: the orbit
    `{h ∘ ι : h ∈ H}` of `ι` under the reduction `H ≤ GL₂(ℤ/Nℤ)` of an open subgroup of `GL₂(ℤ̂)`. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/EllipticCurve/LevelStructure.lean
    complete
    def WeierstrassCurve.IsRationalLevelStructure.{u_1} {F : Type u_1} [Field F]
      [DecidableEq (SeparableClosure F)] (W : WeierstrassCurve F) (N : ℕ)
      (H : Subgroup (GL (Fin 2) (ZMod N)))
      (ι :
        ↥(AddSubgroup.torsionBy
              (W.baseChange (SeparableClosure F)).toAffine.Point
              ↑N) ≃ₗ[ZMod N]
          Fin 2 → ZMod N)
      [W.IsElliptic] : Prop
    def WeierstrassCurve.IsRationalLevelStructure.{u_1}
      {F : Type u_1} [Field F]
      [DecidableEq (SeparableClosure F)]
      (W : WeierstrassCurve F) (N : ℕ)
      (H : Subgroup (GL (Fin 2) (ZMod N)))
      (ι :
        ↥(AddSubgroup.torsionBy
              (W.baseChange
                    (SeparableClosure
                      F)).toAffine.Point
              ↑N) ≃ₗ[ZMod N]
          Fin 2 → ZMod N)
      [W.IsElliptic] : Prop
    An `H`-level structure `[ι]_H` on `W` is **rational** (LMFDB `modcurve.level_structure`) if the
    isomorphism class of the pair `(E, [ι]_H)` is stable under the Galois group of a separable closure:
    for every `σ` there is an automorphism `φ` of `W` over the separable closure, a unit of the
    geometric endomorphism ring, with `ι ∘ σ⁻¹ ∘ φ_N ∈ [ι]_H`. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/EllipticCurve/LevelStructure.lean
    complete
    def WeierstrassCurve.cyclicIsogenyFieldDegree.{u_1} {F : Type u_1} [Field F]
      [DecidableEq (SeparableClosure F)] (W : WeierstrassCurve F) (N : ℕ) :
      ℕ
    def WeierstrassCurve.cyclicIsogenyFieldDegree.{u_1}
      {F : Type u_1} [Field F]
      [DecidableEq (SeparableClosure F)]
      (W : WeierstrassCurve F) (N : ℕ) : ℕ
    The **cyclic `N`-isogeny field degree** of `W` (LMFDB `modcurve.level_structure`): the least
    degree of a finite extension `L ⊆ F^s` of `F` over which `W` has a rational cyclic isogeny of degree
    `N`, that is, over which a cyclic subgroup of order `N` of `E[N]`, its kernel, is Galois stable. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/EllipticCurve/LevelStructure.lean
    complete
    def WeierstrassCurve.cyclicTorsionFieldDegree.{u_1} {F : Type u_1} [Field F]
      [DecidableEq (SeparableClosure F)] (W : WeierstrassCurve F) (N : ℕ) :
      ℕ
    def WeierstrassCurve.cyclicTorsionFieldDegree.{u_1}
      {F : Type u_1} [Field F]
      [DecidableEq (SeparableClosure F)]
      (W : WeierstrassCurve F) (N : ℕ) : ℕ
    The **cyclic `N`-torsion field degree** of `W` (LMFDB `modcurve.level_structure`): the least
    degree of a finite extension `L ⊆ F^s` of `F` over which `W` has a rational point of order `N`. 
  • defdefined in LeanBridge/ForMathlib/AlgebraicGeometry/EllipticCurve/LevelStructure.lean
    complete
    def WeierstrassCurve.torsionFieldDegree.{u_1} {F : Type u_1} [Field F]
      [DecidableEq (SeparableClosure F)] (W : WeierstrassCurve F) (N : ℕ) :
      ℕ
    def WeierstrassCurve.torsionFieldDegree.{u_1}
      {F : Type u_1} [Field F]
      [DecidableEq (SeparableClosure F)]
      (W : WeierstrassCurve F) (N : ℕ) : ℕ
    The **`N`-torsion field degree** of `W` (LMFDB `modcurve.level_structure`): the least degree of
    a finite extension `L ⊆ F^s` of `F` over which all of `E[N]` is rational, the degree of the
    `N`-division field. 
Definition1.129
Statement uses 6
Statement dependency previews
Preview
Definition 1.34
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1XL∃∀N

Modular curve X(N). (LMFDB)

There are three variants of the modular curve Y(N):

  1. There is a functor sending each \Z[1/N]-algebra R to the set of (isomorphism classes of) pairs (E,\alpha) such that E is an elliptic curve over R and \alpha \colon E[N] \to (\Z/N\Z)^2 is an isomorphism of group schemes. Suppose that N \ge 3; then this functor is represented by a smooth affine \mathbb{Z}[1/N]-scheme Y_{\mathrm{full}}(N), called the full modular curve of level N. (If N<3, it is representable only by an algebraic stack, and one must take the coarse moduli space to get a scheme.) For any field k with \operatorname{char} k \nmid N, the set Y_{\mathrm{full}}(N)(k) is the set of isomorphism classes of triples (E,P,Q) , where E is an elliptic curve over k and P,Q \in E(k) form a (\Z/N\Z)-basis of E[N]. The curve Y_{\mathrm{full}}(N)_{\Q} is integral but typically has several geometric components.

  2. Let \zeta_N \in \overline{\Q} be a primitive Nth root of unity. There is a functor sending each \Z[1/N,\zeta_N]-algebra R to the set of pairs (E,\alpha) such that E is an elliptic curve over R and \alpha \colon E[N] \to (\Z/N\Z)^2 is an isomorphism of group schemes such that the resulting elements P,Q \in E[N](R) satisfy e_N(P,Q)=\zeta_N. For N \ge 3, this functor is represented by a smooth affine \Z[1/N,\zeta_N]-scheme Y(N), called the classical modular curve of level N. Over any \Z[1/N,\zeta_N]-field k, the curve Y(N)_k is geometrically integral.

  3. There is a functor sending each \Z[1/N]-algebra R to the set of pairs (E,\alpha) consisting of an elliptic curve E over R and a symplectic isomorphism \alpha \colon E[N] \to \Z/N\Z \times \mu_N. For N \ge 3, this functor is represented by a smooth affine \mathbb{Z}[1/N]-scheme Y_{\mathrm{arith}}(N). Over any field k with \operatorname{char} k \nmid N, the curve Y_{\mathrm{arith}}(N)_k is geometrically integral.

  • Relationships*: Over any \Z[1/N,\zeta]-field k, the curve Y_{\mathrm{arith}}(N)_k is isomorphic to Y(N)_k and to a connected component of Y_{\mathrm{full}}(N)_k.

  • Complex points*: The group \Gamma(N) acts on the upper half-plane \mathfrak{h}, and the quotient \Gamma(N) \backslash \mathfrak{h} is biholomorphic to Y(N)(\mathbb{C}) \simeq Y_{\textup{arith}}(\C) (choosing \zeta_N \in \C).

  • Compactifications*: For each variant, there is a corresponding smooth projective model, denoted X_{\mathrm{full}}(N), X(N), or X_{\mathrm{arith}}(N).

  • Quotients*: For each open subgroup H \le \GL_2(\widehat{\Z}), there is a quotient X_H of X_{\mathrm{full}}(N).

Depends on: Definition 1.34 Definition 4.12 Definition 3.86 Definition 1.72 Definition 1.125 Definition 1.131

Definition1.130
Statement uses 5
Statement dependency previews
Preview
Definition 1.29
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 13
Reverse dependency previews
Preview
Definition 1.132
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Definition of ring. (LMFDB)

A ring is a set R with two binary operations + and \cdot such that

  1. R is an abelian group with respect to +

  2. \cdot is associative on R

  3. the distributive laws hold, i.e., for all a,b,c\in R,

a\cdot(b+c) = a\cdot b+a\cdot c \qquad \text{and}\qquad (b+c)\cdot a = b\cdot a+c\cdot a

  1. there is an identity element with respect to the operation \cdot, typically denoted by 1_R or, more simply, by 1.

The identity element of R as a group with respect to + is typically denoted by 0_R or, more simply, by 0.

The ring R is a commutative ring if R is a ring such that the operation \cdot is commutative on R.

We say that R is a rng (also called ring without identity or non-unital ring) if conditions 1-3 (but not necessarily 4) are satisfied.

Depends on: Definition 1.29 Definition 1.30 Definition 1.31 Definition 1.32 Definition 1.76

Lean code for Definition1.130●3 definitions
  • class(extends 37, 35 methods)defined in Mathlib/Algebra/Ring/Defs.lean
    complete
    class Ring.{u} (R : Type u) : Type u
    class Ring.{u} (R : Type u) : Type u
    A `Ring` is a `Semiring` with negation making it an additive group. 
    • Semiring R
    • AddCommGroup R
    • AddGroupWithOne R
    zero : R
    Inherited from
    1. Semiring
    2. AddCommMonoid
    3. AddMonoid
    4. Zero
    add : R → R → R
    Inherited from
    1. Semiring
    2. AddCommMonoid
    3. AddMonoid
    4. Add
    add_assoc : ∀ (a b c : R), a + b + c = a + (b + c)
    Inherited from
    1. Semiring
    2. AddCommMonoid
    3. AddMonoid
    zero_add : ∀ (a : R), 0 + a = a
    Inherited from
    1. Semiring
    2. AddCommMonoid
    3. AddMonoid
    add_zero : ∀ (a : R), a + 0 = a
    Inherited from
    1. Semiring
    2. AddCommMonoid
    3. AddMonoid
    nsmul : ℕ → R → R
    Inherited from
    1. Semiring
    2. AddCommMonoid
    3. AddMonoid
    4. NSMul
    nsmul_zero : ∀ (x : R), 0 • x = 0
    Inherited from
    1. Semiring
    2. AddCommMonoid
    3. AddMonoid
    nsmul_succ : ∀ (n : ℕ) (x : R), (n + 1) • x = n • x + x
    Inherited from
    1. Semiring
    2. AddCommMonoid
    3. AddMonoid
    add_comm : ∀ (a b : R), a + b = b + a
    Inherited from
    1. Semiring
    2. AddCommMonoid
    one : R
    Inherited from
    1. Semiring
    2. Monoid
    3. One
    mul : R → R → R
    Inherited from
    1. Semiring
    2. Monoid
    3. Mul
    mul_assoc : ∀ (a b c : R), a * b * c = a * (b * c)
    Inherited from
    1. Semiring
    2. Monoid
    one_mul : ∀ (a : R), 1 * a = a
    Inherited from
    1. Semiring
    2. Monoid
    mul_one : ∀ (a : R), a * 1 = a
    Inherited from
    1. Semiring
    2. Monoid
    npow : ℕ → R → R
    Inherited from
    1. Semiring
    2. Monoid
    3. NPow
    npow_zero : ∀ (x : R), x ^ 0 = 1
    Inherited from
    1. Semiring
    2. Monoid
    npow_succ : ∀ (n : ℕ) (x : R), x ^ (n + 1) = x ^ n * x
    Inherited from
    1. Semiring
    2. Monoid
    zero_mul : ∀ (a : R), 0 * a = 0
    Inherited from
    1. Semiring
    mul_zero : ∀ (a : R), a * 0 = 0
    Inherited from
    1. Semiring
    left_distrib : ∀ (a b c : R), a * (b + c) = a * b + a * c
    Inherited from
    1. Semiring
    right_distrib : ∀ (a b c : R), (a + b) * c = a * c + b * c
    Inherited from
    1. Semiring
    natCast : ℕ → R
    Inherited from
    1. Semiring
    2. NatCast
    natCast_zero : ↑0 = 0
    Inherited from
    1. Semiring
    natCast_succ : ∀ (n : ℕ), ↑(n + 1) = ↑n + 1
    Inherited from
    1. Semiring
    neg : R → R
    Inherited from
    1. Neg
    sub : R → R → R
    Inherited from
    1. Sub
    zsmul : ℤ → R → R
    Inherited from
    1. ZSMul
    sub_eq_add_neg : ∀ (a b : R), a - b = a + -b
    zsmul_zero' : ∀ (a : R), 0 • a = 0
    zsmul_succ' : ∀ (n : ℕ) (a : R), ↑n.succ • a = ↑n • a + a
    zsmul_neg' : ∀ (n : ℕ) (a : R), Int.negSucc n • a = -(↑n.succ • a)
    neg_add_cancel : ∀ (a : R), -a + a = 0
    intCast : ℤ → R
    Inherited from
    1. IntCast
    intCast_ofNat : ∀ (n : ℕ), IntCast.intCast ↑n = ↑n
    The canonical homomorphism `ℤ → R` agrees with the one from `ℕ → R` on `ℕ`. 
    intCast_negSucc : ∀ (n : ℕ), IntCast.intCast (Int.negSucc n) = -↑(n + 1)
    The canonical homomorphism `ℤ → R` for negative values is just the negation of the values
    of the canonical homomorphism `ℕ → R`. 
  • class(extends 41, 36 methods)defined in Mathlib/Algebra/Ring/Defs.lean
    complete
    class CommRing.{u} (α : Type u) : Type u
    class CommRing.{u} (α : Type u) : Type u
    A commutative ring is a ring with commutative multiplication. 
    • Ring α
    • CommMonoid α
    zero : α
    Inherited from
    1. Ring
    2. Semiring
    3. AddCommMonoid
    4. AddMonoid
    5. Zero
    add : α → α → α
    Inherited from
    1. Ring
    2. Semiring
    3. AddCommMonoid
    4. AddMonoid
    5. Add
    add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
    Inherited from
    1. Ring
    2. Semiring
    3. AddCommMonoid
    4. AddMonoid
    zero_add : ∀ (a : α), 0 + a = a
    Inherited from
    1. Ring
    2. Semiring
    3. AddCommMonoid
    4. AddMonoid
    add_zero : ∀ (a : α), a + 0 = a
    Inherited from
    1. Ring
    2. Semiring
    3. AddCommMonoid
    4. AddMonoid
    nsmul : ℕ → α → α
    Inherited from
    1. Ring
    2. Semiring
    3. AddCommMonoid
    4. AddMonoid
    5. NSMul
    nsmul_zero : ∀ (x : α), 0 • x = 0
    Inherited from
    1. Ring
    2. Semiring
    3. AddCommMonoid
    4. AddMonoid
    nsmul_succ : ∀ (n : ℕ) (x : α), (n + 1) • x = n • x + x
    Inherited from
    1. Ring
    2. Semiring
    3. AddCommMonoid
    4. AddMonoid
    add_comm : ∀ (a b : α), a + b = b + a
    Inherited from
    1. Ring
    2. Semiring
    3. AddCommMonoid
    one : α
    Inherited from
    1. Ring
    2. Semiring
    3. Monoid
    4. One
    mul : α → α → α
    Inherited from
    1. Ring
    2. Semiring
    3. Monoid
    4. Mul
    mul_assoc : ∀ (a b c : α), a * b * c = a * (b * c)
    Inherited from
    1. Ring
    2. Semiring
    3. Monoid
    one_mul : ∀ (a : α), 1 * a = a
    Inherited from
    1. Ring
    2. Semiring
    3. Monoid
    mul_one : ∀ (a : α), a * 1 = a
    Inherited from
    1. Ring
    2. Semiring
    3. Monoid
    npow : ℕ → α → α
    Inherited from
    1. Ring
    2. Semiring
    3. Monoid
    4. NPow
    npow_zero : ∀ (x : α), x ^ 0 = 1
    Inherited from
    1. Ring
    2. Semiring
    3. Monoid
    npow_succ : ∀ (n : ℕ) (x : α), x ^ (n + 1) = x ^ n * x
    Inherited from
    1. Ring
    2. Semiring
    3. Monoid
    zero_mul : ∀ (a : α), 0 * a = 0
    Inherited from
    1. Ring
    2. Semiring
    mul_zero : ∀ (a : α), a * 0 = 0
    Inherited from
    1. Ring
    2. Semiring
    left_distrib : ∀ (a b c : α), a * (b + c) = a * b + a * c
    Inherited from
    1. Ring
    2. Semiring
    right_distrib : ∀ (a b c : α), (a + b) * c = a * c + b * c
    Inherited from
    1. Ring
    2. Semiring
    natCast : ℕ → α
    Inherited from
    1. Ring
    2. Semiring
    3. NatCast
    natCast_zero : ↑0 = 0
    Inherited from
    1. Ring
    2. Semiring
    natCast_succ : ∀ (n : ℕ), ↑(n + 1) = ↑n + 1
    Inherited from
    1. Ring
    2. Semiring
    neg : α → α
    Inherited from
    1. Ring
    2. Neg
    sub : α → α → α
    Inherited from
    1. Ring
    2. Sub
    zsmul : ℤ → α → α
    Inherited from
    1. Ring
    2. ZSMul
    sub_eq_add_neg : ∀ (a b : α), a - b = a + -b
    Inherited from
    1. Ring
    zsmul_zero' : ∀ (a : α), 0 • a = 0
    Inherited from
    1. Ring
    zsmul_succ' : ∀ (n : ℕ) (a : α), ↑n.succ • a = ↑n • a + a
    Inherited from
    1. Ring
    zsmul_neg' : ∀ (n : ℕ) (a : α), Int.negSucc n • a = -(↑n.succ • a)
    Inherited from
    1. Ring
    neg_add_cancel : ∀ (a : α), -a + a = 0
    Inherited from
    1. Ring
    intCast : ℤ → α
    Inherited from
    1. Ring
    2. IntCast
    intCast_ofNat : ∀ (n : ℕ), IntCast.intCast ↑n = ↑n
    Inherited from
    1. Ring
    intCast_negSucc : ∀ (n : ℕ), IntCast.intCast (Int.negSucc n) = -↑(n + 1)
    Inherited from
    1. Ring
    mul_comm : ∀ (a b : α), a * b = b * a
    Multiplication is commutative in a commutative multiplicative magma. 
  • class(extends 24, 23 methods)defined in Mathlib/Algebra/Ring/Defs.lean
    complete
    class NonUnitalRing.{u_1} (α : Type u_1) : Type u_1
    class NonUnitalRing.{u_1} (α : Type u_1) :
      Type u_1
    An associative but not-necessarily unital ring. 
    • NonUnitalNonAssocRing α
    • NonUnitalSemiring α
    zero : α
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. AddMonoid
    6. Zero
    add : α → α → α
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. AddMonoid
    6. Add
    add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. AddMonoid
    zero_add : ∀ (a : α), 0 + a = a
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. AddMonoid
    add_zero : ∀ (a : α), a + 0 = a
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. AddMonoid
    nsmul : ℕ → α → α
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. AddMonoid
    6. NSMul
    nsmul_zero : ∀ (x : α), 0 • x = 0
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. AddMonoid
    nsmul_succ : ∀ (n : ℕ) (x : α), (n + 1) • x = n • x + x
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. AddMonoid
    neg : α → α
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. Neg
    sub : α → α → α
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. Sub
    zsmul : ℤ → α → α
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    5. ZSMul
    sub_eq_add_neg : ∀ (a b : α), a - b = a + -b
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    zsmul_zero' : ∀ (a : α), 0 • a = 0
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    zsmul_succ' : ∀ (n : ℕ) (a : α), ↑n.succ • a = ↑n • a + a
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    zsmul_neg' : ∀ (n : ℕ) (a : α), Int.negSucc n • a = -(↑n.succ • a)
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    4. SubNegMonoid
    neg_add_cancel : ∀ (a : α), -a + a = 0
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    3. AddGroup
    add_comm : ∀ (a b : α), a + b = b + a
    Inherited from
    1. NonUnitalNonAssocRing
    2. AddCommGroup
    mul : α → α → α
    Inherited from
    1. NonUnitalNonAssocRing
    2. Mul
    left_distrib : ∀ (a b c : α), a * (b + c) = a * b + a * c
    Inherited from
    1. NonUnitalNonAssocRing
    right_distrib : ∀ (a b c : α), (a + b) * c = a * c + b * c
    Inherited from
    1. NonUnitalNonAssocRing
    zero_mul : ∀ (a : α), 0 * a = 0
    Inherited from
    1. NonUnitalNonAssocRing
    mul_zero : ∀ (a : α), a * 0 = 0
    Inherited from
    1. NonUnitalNonAssocRing
    mul_assoc : ∀ (a b c : α), a * b * c = a * (b * c)
    Multiplication is associative 
Definition1.131
uses 1used by 1✓L∃∀N

A-field. (LMFDB)

Let A be a commutative ring. An A-field is an A-algebra that is a field.

Depends on: Definition 1.134

Lean code for Definition1.131●2 definitions
  • class(extends 1, 4 methods)defined in Mathlib/Algebra/Algebra/Defs.lean
    complete
    class Algebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] :
      Type (max u v)
    class Algebra.{u, v} (R : Type u) (A : Type v)
      [CommSemiring R] [Semiring A] :
      Type (max u v)
    An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
    • SMul R A
    smul : R → A → A
    Inherited from
    1. SMul
    algebraMap : R →+* A
    Embedding `R →+* A` given by `Algebra` structure. 
    commutes' : ∀ (r : R) (x : A), (algebraMap R A) r * x = x * (algebraMap R A) r
    smul_def' : ∀ (r : R) (x : A), r • x = (algebraMap R A) r * x
  • class(extends 50, 54 methods)defined in Mathlib/Algebra/Field/Defs.lean
    complete
    class Field.{u} (K : Type u) : Type u
    class Field.{u} (K : Type u) : Type u
    A `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`. 
    • CommRing K
    • DivisionRing K
    zero : K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    6. Zero
    add : K → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    6. Add
    add_assoc : ∀ (a b c : K), a + b + c = a + (b + c)
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    zero_add : ∀ (a : K), 0 + a = a
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    add_zero : ∀ (a : K), a + 0 = a
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    nsmul : ℕ → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    6. NSMul
    nsmul_zero : ∀ (x : K), 0 • x = 0
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    nsmul_succ : ∀ (n : ℕ) (x : K), (n + 1) • x = n • x + x
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    add_comm : ∀ (a b : K), a + b = b + a
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    one : K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    5. One
    mul : K → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    5. Mul
    mul_assoc : ∀ (a b c : K), a * b * c = a * (b * c)
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    one_mul : ∀ (a : K), 1 * a = a
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    mul_one : ∀ (a : K), a * 1 = a
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    npow : ℕ → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    5. NPow
    npow_zero : ∀ (x : K), x ^ 0 = 1
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    npow_succ : ∀ (n : ℕ) (x : K), x ^ (n + 1) = x ^ n * x
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    zero_mul : ∀ (a : K), 0 * a = 0
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    mul_zero : ∀ (a : K), a * 0 = 0
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    left_distrib : ∀ (a b c : K), a * (b + c) = a * b + a * c
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    right_distrib : ∀ (a b c : K), (a + b) * c = a * c + b * c
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    natCast : ℕ → K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. NatCast
    natCast_zero : ↑0 = 0
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    natCast_succ : ∀ (n : ℕ), ↑(n + 1) = ↑n + 1
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    neg : K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Neg
    sub : K → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Sub
    zsmul : ℤ → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. ZSMul
    sub_eq_add_neg : ∀ (a b : K), a - b = a + -b
    Inherited from
    1. CommRing
    2. Ring
    zsmul_zero' : ∀ (a : K), 0 • a = 0
    Inherited from
    1. CommRing
    2. Ring
    zsmul_succ' : ∀ (n : ℕ) (a : K), ↑n.succ • a = ↑n • a + a
    Inherited from
    1. CommRing
    2. Ring
    zsmul_neg' : ∀ (n : ℕ) (a : K), Int.negSucc n • a = -(↑n.succ • a)
    Inherited from
    1. CommRing
    2. Ring
    neg_add_cancel : ∀ (a : K), -a + a = 0
    Inherited from
    1. CommRing
    2. Ring
    intCast : ℤ → K
    Inherited from
    1. CommRing
    2. Ring
    3. IntCast
    intCast_ofNat : ∀ (n : ℕ), IntCast.intCast ↑n = ↑n
    Inherited from
    1. CommRing
    2. Ring
    intCast_negSucc : ∀ (n : ℕ), IntCast.intCast (Int.negSucc n) = -↑(n + 1)
    Inherited from
    1. CommRing
    2. Ring
    mul_comm : ∀ (a b : K), a * b = b * a
    Inherited from
    1. CommRing
    inv : K → K
    Inherited from
    1. Inv
    div : K → K → K
    Inherited from
    1. Div
    zpow : ℤ → K → K
    Inherited from
    1. ZPow
    div_eq_mul_inv : ∀ (a b : K), a / b = a * b⁻¹
    `a / b := a * b⁻¹` 
    zpow_zero' : ∀ (a : K), a ^ 0 = 1
    `a ^ 0 = 1` 
    zpow_succ' : ∀ (n : ℕ) (a : K), a ^ ↑n.succ = a ^ ↑n * a
    `a ^ (n + 1) = a ^ n * a` 
    zpow_neg' : ∀ (n : ℕ) (a : K), a ^ Int.negSucc n = (a ^ ↑n.succ)⁻¹
    `a ^ -(n + 1) = (a ^ (n + 1))⁻¹` 
    exists_pair_ne : ∃ x y, x ≠ y
    Inherited from
    1. Nontrivial
    nnratCast : ℚ≥0 → K
    Inherited from
    1. NNRatCast
    ratCast : ℚ → K
    Inherited from
    1. RatCast
    mul_inv_cancel : ∀ (a : K), a ≠ 0 → a * a⁻¹ = 1
    For a nonzero `a`, `a⁻¹` is a right multiplicative inverse. 
    inv_zero : 0⁻¹ = 0
    The inverse of `0` is `0` by convention. 
    nnratCast_def : ∀ (q : ℚ≥0), ↑q = ↑q.num / ↑q.den
    However `NNRat.cast` is defined, it must be equal to `a / b`.
    
    Do not use this lemma directly. Use `NNRat.cast_def` instead. 
    nnqsmul : ℚ≥0 → K → K
    Scalar multiplication by a nonnegative rational number.
    
    Unless there is a risk of a `Module ℚ≥0 _` instance diamond, write `nnqsmul := _`. This will set
    `nnqsmul` to `(NNRat.cast · * ·)` thanks to unification in the default proof of `nnqsmul_def`.
    
    Do not use directly. Instead use the `•` notation. 
    nnqsmul_def : ∀ (q : ℚ≥0) (a : K), Field.nnqsmul q a = ↑q * a
    However `qsmul` is defined, it must be propositionally equal to multiplication by `Rat.cast`.
    
    Do not use this lemma directly. Use `NNRat.smul_def` instead. 
    ratCast_def : ∀ (q : ℚ), ↑q = ↑q.num / ↑q.den
    However `Rat.cast q` is defined, it must be propositionally equal to `q.num / q.den`.
    
    Do not use this lemma directly. Use `Rat.cast_def` instead. 
    qsmul : ℚ → K → K
    Scalar multiplication by a rational number.
    
    Unless there is a risk of a `Module ℚ _` instance diamond, write `qsmul := _`. This will set
    `qsmul` to `(Rat.cast · * ·)` thanks to unification in the default proof of `qsmul_def`.
    
    Do not use directly. Instead use the `•` notation. 
    qsmul_def : ∀ (a : ℚ) (x : K), Field.qsmul a x = ↑a * x
    However `qsmul` is defined, it must be propositionally equal to multiplication by `Rat.cast`.
    
    Do not use this lemma directly. Use `Rat.cast_def` instead. 
Definition1.132
Statement uses 3
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 5
Reverse dependency previews
Preview
Definition 1.102
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Characteristic of a ring. (LMFDB)

The characteristic of a ring is the least positive integer n for which

\underbrace{1+\cdots + 1}_n = 0,

if such an n exists, and 0 otherwise. Equivalently, it is the exponent of the additive group of the ring.

The characteristic of a field k is either 0 or a prime number p, depending on whether the prime field of k is isomorphic to \Q or \F_p.

Depends on: Definition 1.75 Definition 1.130 Definition 1.134

Lean code for Definition1.132●4 declarations
  • defdefined in Mathlib/Algebra/CharP/Defs.lean
    complete
    def ringChar.{u_1} (R : Type u_1) [NonAssocSemiring R] : ℕ
    def ringChar.{u_1} (R : Type u_1)
      [NonAssocSemiring R] : ℕ
    Noncomputable function that outputs the unique characteristic of a semiring. 
  • class(1 method)defined in Mathlib/Algebra/CharP/Defs.lean
    complete
    class CharP.{u_2} (R : Type u_2) [AddMonoidWithOne R] (p : outParam ℕ) : Prop
    class CharP.{u_2} (R : Type u_2)
      [AddMonoidWithOne R] (p : outParam ℕ) :
      Prop
    The generator of the kernel of the unique homomorphism ℕ → R for a semiring R.
    
    *Warning*: for a semiring `R`, `CharP R 0` and `CharZero R` need not coincide.
    * `CharP R 0` asks that only `0 : ℕ` maps to `0 : R` under the map `ℕ → R`;
    * `CharZero R` requires an injection `ℕ ↪ R`.
    
    For instance, endowing `{0, 1}` with addition given by `max` (i.e. `1` is absorbing), shows that
    `CharZero {0, 1}` does not hold and yet `CharP {0, 1} 0` does.
    This example is formalized in `Counterexamples/CharPZeroNeCharZero.lean`.
    
    cast_eq_zero_iff : ∀ (x : ℕ), ↑x = 0 ↔ p ∣ x
  • theoremdefined in Mathlib/GroupTheory/OrderOfElement.lean
    complete
    theorem CharP.addOrderOf_one.{u_6} (R : Type u_6) [NonAssocRing R] :
      CharP R (addOrderOf 1)
    theorem CharP.addOrderOf_one.{u_6} (R : Type u_6)
      [NonAssocRing R] :
      CharP R (addOrderOf 1)
  • theoremdefined in Mathlib/Algebra/CharP/Defs.lean
    complete
    theorem CharP.char_is_prime_or_zero.{u_1} (R : Type u_1) [NonAssocSemiring R]
      [NoZeroDivisors R] [Nontrivial R] (p : ℕ) [hc : CharP R p] :
      Nat.Prime p ∨ p = 0
    theorem CharP.char_is_prime_or_zero.{u_1}
      (R : Type u_1) [NonAssocSemiring R]
      [NoZeroDivisors R] [Nontrivial R]
      (p : ℕ) [hc : CharP R p] :
      Nat.Prime p ∨ p = 0
Definition1.133
Statement uses 10
Statement dependency previews
Preview
Definition 1.134
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Dedekind domain. (LMFDB)

A Dedekind domain D is a integral domain which is not a field such that

  1. D is Noetherian;

  2. every non-zero prime ideal is maximal;

  3. D is integrally closed.

The ring of integers of a number field is always a Dedekind domain, as is every discrete valuation ring.

In a Dedekind domain, every non-zero ideal I can be written as a product of non-zero prime ideals,

I=P_1P_2\cdots P_k,

and the product is unique up to the order of the factors. Repeated factors are often grouped, so we write I=Q_1^{e_1}\cdots Q_g^{e_g} where the Q_i are non-zero prime ideals of D.

In addition, every fractional ideal I is invertible in the sense that there exists a fractional ideal J such that IJ=D.

Depends on: Definition 2.1 Definition 2.56 Definition 1.134 Definition 1.137 Definition 1.138 Definition 1.140 Definition 1.141 Definition 1.143 Definition 1.144 Definition 1.145

Lean code for Definition1.133●1 definition
  • class(extends 9, 7 methods)defined in Mathlib/RingTheory/DedekindDomain/Basic.lean
    complete
    class IsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : Prop
    class IsDedekindDomain.{u_2} (A : Type u_2)
      [CommRing A] : Prop
    A Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    See also `isDedekindDomain_iff_isDiscreteValuationRing_atPrime` and
    `isDedekindDomain_iff_mul_inv_cancel`. 
    • IsDomain A
    • IsDedekindRing A
    mul_left_cancel_of_ne_zero : ∀ {a : A}, a ≠ 0 → IsLeftRegular a
    Inherited from
    1. IsDomain
    2. IsCancelMulZero
    3. IsLeftCancelMulZero
    mul_right_cancel_of_ne_zero : ∀ {a : A}, a ≠ 0 → IsRightRegular a
    Inherited from
    1. IsDomain
    2. IsCancelMulZero
    3. IsRightCancelMulZero
    exists_pair_ne : ∃ x y, x ≠ y
    Inherited from
    1. IsDomain
    2. Nontrivial
    noetherian : ∀ (s : Submodule A A), s.FG
    Inherited from
    1. IsDedekindRing
    2. IsNoetherian
    maximalOfPrime : ∀ {p : Ideal A}, p ≠ ⊥ → p.IsPrime → p.IsMaximal
    Inherited from
    1. IsDedekindRing
    2. Ring.DimensionLEOne
    algebraMap_injective : Function.Injective ⇑(algebraMap A (FractionRing A))
    Inherited from
    1. IsDedekindRing
    2. IsIntegralClosure
    isIntegral_iff : ∀ {x : FractionRing A}, IsIntegral A x ↔ ∃ y, (algebraMap A (FractionRing A)) y = x
    Inherited from
    1. IsDedekindRing
    2. IsIntegralClosure
Definition1.134
Statement uses 2
Statement dependency previews
Preview
Definition 1.33
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 16
Reverse dependency previews
Preview
Definition 1.6
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Field. (LMFDB)

A field is a commutative ring R such that 0_R\neq 1_R and every nonzero element of R has an inverse in R with respect to multiplication.

Depends on: Definition 1.33 Definition 1.130

Lean code for Definition1.134●1 definition
  • class(extends 50, 54 methods)defined in Mathlib/Algebra/Field/Defs.lean
    complete
    class Field.{u} (K : Type u) : Type u
    class Field.{u} (K : Type u) : Type u
    A `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`. 
    • CommRing K
    • DivisionRing K
    zero : K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    6. Zero
    add : K → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    6. Add
    add_assoc : ∀ (a b c : K), a + b + c = a + (b + c)
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    zero_add : ∀ (a : K), 0 + a = a
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    add_zero : ∀ (a : K), a + 0 = a
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    nsmul : ℕ → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    6. NSMul
    nsmul_zero : ∀ (x : K), 0 • x = 0
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    nsmul_succ : ∀ (n : ℕ) (x : K), (n + 1) • x = n • x + x
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    5. AddMonoid
    add_comm : ∀ (a b : K), a + b = b + a
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. AddCommMonoid
    one : K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    5. One
    mul : K → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    5. Mul
    mul_assoc : ∀ (a b c : K), a * b * c = a * (b * c)
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    one_mul : ∀ (a : K), 1 * a = a
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    mul_one : ∀ (a : K), a * 1 = a
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    npow : ℕ → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    5. NPow
    npow_zero : ∀ (x : K), x ^ 0 = 1
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    npow_succ : ∀ (n : ℕ) (x : K), x ^ (n + 1) = x ^ n * x
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. Monoid
    zero_mul : ∀ (a : K), 0 * a = 0
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    mul_zero : ∀ (a : K), a * 0 = 0
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    left_distrib : ∀ (a b c : K), a * (b + c) = a * b + a * c
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    right_distrib : ∀ (a b c : K), (a + b) * c = a * c + b * c
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    natCast : ℕ → K
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    4. NatCast
    natCast_zero : ↑0 = 0
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    natCast_succ : ∀ (n : ℕ), ↑(n + 1) = ↑n + 1
    Inherited from
    1. CommRing
    2. Ring
    3. Semiring
    neg : K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Neg
    sub : K → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. Sub
    zsmul : ℤ → K → K
    Inherited from
    1. CommRing
    2. Ring
    3. ZSMul
    sub_eq_add_neg : ∀ (a b : K), a - b = a + -b
    Inherited from
    1. CommRing
    2. Ring
    zsmul_zero' : ∀ (a : K), 0 • a = 0
    Inherited from
    1. CommRing
    2. Ring
    zsmul_succ' : ∀ (n : ℕ) (a : K), ↑n.succ • a = ↑n • a + a
    Inherited from
    1. CommRing
    2. Ring
    zsmul_neg' : ∀ (n : ℕ) (a : K), Int.negSucc n • a = -(↑n.succ • a)
    Inherited from
    1. CommRing
    2. Ring
    neg_add_cancel : ∀ (a : K), -a + a = 0
    Inherited from
    1. CommRing
    2. Ring
    intCast : ℤ → K
    Inherited from
    1. CommRing
    2. Ring
    3. IntCast
    intCast_ofNat : ∀ (n : ℕ), IntCast.intCast ↑n = ↑n
    Inherited from
    1. CommRing
    2. Ring
    intCast_negSucc : ∀ (n : ℕ), IntCast.intCast (Int.negSucc n) = -↑(n + 1)
    Inherited from
    1. CommRing
    2. Ring
    mul_comm : ∀ (a b : K), a * b = b * a
    Inherited from
    1. CommRing
    inv : K → K
    Inherited from
    1. Inv
    div : K → K → K
    Inherited from
    1. Div
    zpow : ℤ → K → K
    Inherited from
    1. ZPow
    div_eq_mul_inv : ∀ (a b : K), a / b = a * b⁻¹
    `a / b := a * b⁻¹` 
    zpow_zero' : ∀ (a : K), a ^ 0 = 1
    `a ^ 0 = 1` 
    zpow_succ' : ∀ (n : ℕ) (a : K), a ^ ↑n.succ = a ^ ↑n * a
    `a ^ (n + 1) = a ^ n * a` 
    zpow_neg' : ∀ (n : ℕ) (a : K), a ^ Int.negSucc n = (a ^ ↑n.succ)⁻¹
    `a ^ -(n + 1) = (a ^ (n + 1))⁻¹` 
    exists_pair_ne : ∃ x y, x ≠ y
    Inherited from
    1. Nontrivial
    nnratCast : ℚ≥0 → K
    Inherited from
    1. NNRatCast
    ratCast : ℚ → K
    Inherited from
    1. RatCast
    mul_inv_cancel : ∀ (a : K), a ≠ 0 → a * a⁻¹ = 1
    For a nonzero `a`, `a⁻¹` is a right multiplicative inverse. 
    inv_zero : 0⁻¹ = 0
    The inverse of `0` is `0` by convention. 
    nnratCast_def : ∀ (q : ℚ≥0), ↑q = ↑q.num / ↑q.den
    However `NNRat.cast` is defined, it must be equal to `a / b`.
    
    Do not use this lemma directly. Use `NNRat.cast_def` instead. 
    nnqsmul : ℚ≥0 → K → K
    Scalar multiplication by a nonnegative rational number.
    
    Unless there is a risk of a `Module ℚ≥0 _` instance diamond, write `nnqsmul := _`. This will set
    `nnqsmul` to `(NNRat.cast · * ·)` thanks to unification in the default proof of `nnqsmul_def`.
    
    Do not use directly. Instead use the `•` notation. 
    nnqsmul_def : ∀ (q : ℚ≥0) (a : K), Field.nnqsmul q a = ↑q * a
    However `qsmul` is defined, it must be propositionally equal to multiplication by `Rat.cast`.
    
    Do not use this lemma directly. Use `NNRat.smul_def` instead. 
    ratCast_def : ∀ (q : ℚ), ↑q = ↑q.num / ↑q.den
    However `Rat.cast q` is defined, it must be propositionally equal to `q.num / q.den`.
    
    Do not use this lemma directly. Use `Rat.cast_def` instead. 
    qsmul : ℚ → K → K
    Scalar multiplication by a rational number.
    
    Unless there is a risk of a `Module ℚ _` instance diamond, write `qsmul := _`. This will set
    `qsmul` to `(Rat.cast · * ·)` thanks to unification in the default proof of `qsmul_def`.
    
    Do not use directly. Instead use the `•` notation. 
    qsmul_def : ∀ (a : ℚ) (x : K), Field.qsmul a x = ↑a * x
    However `qsmul` is defined, it must be propositionally equal to multiplication by `Rat.cast`.
    
    Do not use this lemma directly. Use `Rat.cast_def` instead. 
Definition1.135
Statement uses 3
Statement dependency previews
Preview
Definition 1.134
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 4
Reverse dependency previews
Preview
Definition 1.137
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Field of fractions of an integral domain. (LMFDB)

If R is an integral domain, then its field of fractions F is the smallest field containing R.

It can be constructed by mimicking the set of fractions a/b where a,b\in R with b\neq 0 following the usual rules for fraction arithmetic. It is unique, up to unique isomorphism.

Depends on: Definition 1.134 Definition 1.136 Definition 1.140

Lean code for Definition1.135●5 definitions
  • abbrevdefined in Mathlib/RingTheory/Localization/FractionRing.lean
    complete
    abbrev FractionRing.{u_1} (R : Type u_1) [CommRing R] : Type u_1
    abbrev FractionRing.{u_1} (R : Type u_1)
      [CommRing R] : Type u_1
    The fraction ring of a commutative ring `R` as a quotient type.
    
    We instantiate this definition as generally as possible, and assume that the
    commutative ring `R` is an integral domain only when this is needed for proving.
    
    In this generality, this construction is also known as the *total fraction ring* of `R`.
    
  • abbrevdefined in Mathlib/RingTheory/Localization/FractionRing.lean
    complete
    abbrev IsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7)
      [CommSemiring K] [Algebra R K] : Prop
    abbrev IsFractionRing.{u_6, u_7} (R : Type u_6)
      [CommSemiring R] (K : Type u_7)
      [CommSemiring K] [Algebra R K] : Prop
    `IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`. 
  • defdefined in Mathlib/RingTheory/Localization/FractionRing.lean
    complete
    def FractionRing.field.{u_4} (A : Type u_4) [CommRing A] [IsDomain A] :
      Field (FractionRing A)
    def FractionRing.field.{u_4} (A : Type u_4)
      [CommRing A] [IsDomain A] :
      Field (FractionRing A)
  • defdefined in Mathlib/RingTheory/Localization/FractionRing.lean
    complete
    def IsFractionRing.lift.{u_4, u_5, u_7} {A : Type u_4} [CommRing A]
      {K : Type u_5} [Field K] {L : Type u_7} [Field L] [Algebra A K]
      [IsFractionRing A K] {g : A →+* L} (hg : Function.Injective ⇑g) :
      K →+* L
    def IsFractionRing.lift.{u_4, u_5, u_7}
      {A : Type u_4} [CommRing A]
      {K : Type u_5} [Field K] {L : Type u_7}
      [Field L] [Algebra A K]
      [IsFractionRing A K] {g : A →+* L}
      (hg : Function.Injective ⇑g) : K →+* L
    Given a commutative ring `A` with field of fractions `K`,
    and an injective ring hom `g : A →+* L` where `L` is a field, we get a
    field hom sending `z : K` to `g x * (g y)⁻¹`, where `(x, y) : A × (NonZeroDivisors A)` are
    such that `z = f x * (f y)⁻¹`. 
  • defdefined in Mathlib/RingTheory/Localization/FractionRing.lean
    complete
    def FractionRing.algEquiv.{u_4, u_6} (A : Type u_4) [CommRing A]
      (K : Type u_6) [CommRing K] [Algebra A K] [IsFractionRing A K] :
      FractionRing A ≃ₐ[A] K
    def FractionRing.algEquiv.{u_4, u_6}
      (A : Type u_4) [CommRing A]
      (K : Type u_6) [CommRing K]
      [Algebra A K] [IsFractionRing A K] :
      FractionRing A ≃ₐ[A] K
    Given a ring `A` and a localization map to a fraction ring
    `f : A →+* K`, we get an `A`-isomorphism between the fraction ring of `A` as a quotient
    type and `K`. 
Definition1.136
uses 1used by 1✓L∃∀N

Field of fractions (mathlib). (LMFDB)

This is also defined in mathlib as Fraction Ring, which is the localisation at the non-zero divisors of your ring. When your ring R is a commutative ring and an integral domain then gets the fact that this is a field.

Depends on: Definition 1.130

Lean code for Definition1.136●1 definition
  • abbrevdefined in Mathlib/RingTheory/Localization/FractionRing.lean
    complete
    abbrev FractionRing.{u_1} (R : Type u_1) [CommRing R] : Type u_1
    abbrev FractionRing.{u_1} (R : Type u_1)
      [CommRing R] : Type u_1
    The fraction ring of a commutative ring `R` as a quotient type.
    
    We instantiate this definition as generally as possible, and assume that the
    commutative ring `R` is an integral domain only when this is needed for proving.
    
    In this generality, this construction is also known as the *total fraction ring* of `R`.
    
Definition1.137
Statement uses 2
Statement dependency previews
Preview
Definition 1.135
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Definition 1.133
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Fractional ideal. (LMFDB)

If R is an integral domain with field of fractions K, then a fractional ideal I of R is an R-submodule of K such that there exists d\in R-\{0\} with dI=\{da\mid a\in I\} \subseteq R\,.

Depends on: Definition 1.135 Definition 1.140

Lean code for Definition1.137●1 definition
  • defdefined in Mathlib/RingTheory/FractionalIdeal/Basic.lean
    complete
    def FractionalIdeal.{u_1, u_2} {R : Type u_1} [CommRing R] (S : Submonoid R)
      (P : Type u_2) [CommRing P] [Algebra R P] : Type u_2
    def FractionalIdeal.{u_1, u_2} {R : Type u_1}
      [CommRing R] (S : Submonoid R)
      (P : Type u_2) [CommRing P]
      [Algebra R P] : Type u_2
    The fractional ideals of a domain `R` are ideals of `R` divided by some `a ∈ R`.
    
    More precisely, let `P` be a localization of `R` at some submonoid `S`,
    then a fractional ideal `I ⊆ P` is an `R`-submodule of `P`,
    such that there is an `a ∈ S` with `a I ⊆ R`.
    
Definition1.138
Statement uses 2
Statement dependency previews
Preview
Definition 1.95
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 5
Reverse dependency previews
Preview
Definition 1.133
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Ideal of a ring. (LMFDB)

If R is a ring, a subset I\subseteq R is an ideal of R if I is a subgroup of R for + and for all a\in I and all r\in R,

r\cdot a\in I \qquad\text{and}\qquad a\cdot r\in I.

In a polynomial ring R[X_1,\dots,X_n], an ideal is homogeneous if it can be generated by homogeneous polynomials.

Depends on: Definition 1.95 Definition 1.130

Lean code for Definition1.138●5 declarations
  • structure(1 field)defined in Mathlib/RingTheory/TwoSidedIdeal/Basic.lean
    complete
    structure TwoSidedIdeal.{u_1} (R : Type u_1) [NonUnitalNonAssocRing R] : Type u_1
    structure TwoSidedIdeal.{u_1} (R : Type u_1)
      [NonUnitalNonAssocRing R] : Type u_1
    A two-sided ideal of a ring `R` is a subset of `R` that contains `0` and is closed under addition,
    negation, and absorbs multiplication on both sides.
    
    ringCon : RingCon R
    The congruence relation induced by this ideal. 
  • abbrevdefined in Mathlib/RingTheory/Ideal/Defs.lean
    complete
    abbrev Ideal.{u} (R : Type u) [Semiring R] : Type u
    abbrev Ideal.{u} (R : Type u) [Semiring R] :
      Type u
    A (left) ideal in a semiring `R` is an additive submonoid `s` such that
    `a * b ∈ s` whenever `b ∈ s`. If `R` is a ring, then `s` is an additive subgroup. 
  • abbrevdefined in Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean
    complete
    abbrev Ideal.IsHomogeneous.{u_1, u_2, u_3} {ι : Type u_1} {σ : Type u_2}
      {A : Type u_3} [Semiring A] [SetLike σ A] [AddSubmonoidClass σ A]
      (𝒜 : ι → σ) [DecidableEq ι] [AddMonoid ι] [GradedRing 𝒜]
      (I : Ideal A) : Prop
    abbrev Ideal.IsHomogeneous.{u_1, u_2, u_3}
      {ι : Type u_1} {σ : Type u_2}
      {A : Type u_3} [Semiring A]
      [SetLike σ A] [AddSubmonoidClass σ A]
      (𝒜 : ι → σ) [DecidableEq ι]
      [AddMonoid ι] [GradedRing 𝒜]
      (I : Ideal A) : Prop
    An `I : Ideal A` is homogeneous if for every `r ∈ I`, all homogeneous components
    of `r` are in `I`. 
  • abbrevdefined in Mathlib/RingTheory/MvPolynomial/Homogeneous.lean
    complete
    abbrev MvPolynomial.gradedAlgebra.{u_1, u_3} {σ : Type u_1} {R : Type u_3}
      [CommSemiring R] :
      GradedAlgebra (MvPolynomial.homogeneousSubmodule σ R)
    abbrev MvPolynomial.gradedAlgebra.{u_1, u_3}
      {σ : Type u_1} {R : Type u_3}
      [CommSemiring R] :
      GradedAlgebra
        (MvPolynomial.homogeneousSubmodule σ
          R)
    `MvPolynomial σ R` as a graded algebra, graded by the degree.
    We do not make this a global instance because one may want to consider a different
    graded algebra structure on `MvPolynomial σ R`, induced by another weight function.
    To make it a local instance, you may use
    `attribute [local instance] MvPolynomial.gradedAlgebra`.
    
  • theoremdefined in Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean
    complete
    theorem Ideal.IsHomogeneous.iff_exists.{u_1, u_2, u_3} {ι : Type u_1}
      {σ : Type u_2} {A : Type u_3} [Semiring A] [SetLike σ A]
      [AddSubmonoidClass σ A] (𝒜 : ι → σ) [DecidableEq ι] [AddMonoid ι]
      [GradedRing 𝒜] (I : Ideal A) :
      Ideal.IsHomogeneous 𝒜 I ↔ ∃ S, I = Ideal.span (Subtype.val '' S)
    theorem Ideal.IsHomogeneous.iff_exists.{u_1, u_2,
        u_3}
      {ι : Type u_1} {σ : Type u_2}
      {A : Type u_3} [Semiring A]
      [SetLike σ A] [AddSubmonoidClass σ A]
      (𝒜 : ι → σ) [DecidableEq ι]
      [AddMonoid ι] [GradedRing 𝒜]
      (I : Ideal A) :
      Ideal.IsHomogeneous 𝒜 I ↔
        ∃ S, I = Ideal.span (Subtype.val '' S)
Definition1.139
uses 1
Used by 3
Reverse dependency previews
Preview
Definition 1.141
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Integral element of a ring. (LMFDB)

If R\subseteq S are commutative rings, an element s\in S is integral over R if there exists n\in\Z^+ and a_i\in R such that

s^n+a_{n-1} s^{n-1}+\cdots + a_0 =0\,.

The integral closure of R in S is \{s\in S\mid s \text{ is integral over } R\}.

Depends on: Definition 1.130

Lean code for Definition1.139●2 definitions
  • defdefined in Mathlib/RingTheory/IntegralClosure/IsIntegral/Defs.lean
    complete
    def IsIntegral.{u_1, u_3} (R : Type u_1) {A : Type u_3} [CommRing R]
      [Ring A] [Algebra R A] (x : A) : Prop
    def IsIntegral.{u_1, u_3} (R : Type u_1)
      {A : Type u_3} [CommRing R] [Ring A]
      [Algebra R A] (x : A) : Prop
    An element `x` of an algebra `A` over a commutative ring `R` is said to be *integral*,
    if it is a root of some monic polynomial `p : R[X]`.
    Equivalently, the element is integral over `R` with respect to the induced `algebraMap` 
  • defdefined in Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean
    complete
    def integralClosure.{u_1, u_2} (R : Type u_1) (A : Type u_2) [CommRing R]
      [CommRing A] [Algebra R A] : Subalgebra R A
    def integralClosure.{u_1, u_2} (R : Type u_1)
      (A : Type u_2) [CommRing R] [CommRing A]
      [Algebra R A] : Subalgebra R A
    The integral closure of `R` in an `R`-algebra `A`. 
Definition1.140
Statement uses 2
Statement dependency previews
Preview
Definition 1.130
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 6
Reverse dependency previews
Preview
Definition 1.133
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Integral domain. (LMFDB)

An integral domain is a commutative ring R such that 1_R\neq 0_R and R contains no zero divisors.

Depends on: Definition 1.130 Definition 1.148

Lean code for Definition1.140●1 definition
  • class(extends 4, 3 methods)defined in Mathlib/Algebra/Ring/Defs.lean
    complete
    class IsDomain.{u} (α : Type u) [Semiring α] : Prop
    class IsDomain.{u} (α : Type u) [Semiring α] :
      Prop
    A domain is a nontrivial semiring such that multiplication by a nonzero element
    is cancellative on both sides. In other words, a nontrivial semiring `R` satisfying
    `∀ {a b c : R}, a ≠ 0 → a * b = a * c → b = c` and
    `∀ {a b c : R}, b ≠ 0 → a * b = c * b → a = c`.
    
    This is implemented as a mixin for `Semiring α`.
    To obtain an integral domain use `[CommRing α] [IsDomain α]`. 
    • IsCancelMulZero α
    • Nontrivial α
    mul_left_cancel_of_ne_zero : ∀ {a : α}, a ≠ 0 → IsLeftRegular a
    Inherited from
    1. IsCancelMulZero
    2. IsLeftCancelMulZero
    mul_right_cancel_of_ne_zero : ∀ {a : α}, a ≠ 0 → IsRightRegular a
    Inherited from
    1. IsCancelMulZero
    2. IsRightCancelMulZero
    exists_pair_ne : ∃ x y, x ≠ y
    Inherited from
    1. Nontrivial
Definition1.141
Statement uses 3
Statement dependency previews
Preview
Definition 1.135
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Integrally closed. (LMFDB)

Let R be an integral domain and F its field of fractions. Then R is integrally closed if R equals the integral closure of R in F.

Depends on: Definition 1.135 Definition 1.139 Definition 1.140

Lean code for Definition1.141●1 definition
  • abbrevdefined in Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean
    complete
    abbrev IsIntegrallyClosed.{u_1} (R : Type u_1) [CommRing R] : Prop
    abbrev IsIntegrallyClosed.{u_1} (R : Type u_1)
      [CommRing R] : Prop
    `R` is integrally closed if all integral elements of `Frac(R)` are also elements of `R`.
    
    This definition uses `FractionRing R` to denote `Frac(R)`. See `isIntegrallyClosed_iff`
    if you want to choose another field of fractions for `R`.
    
Definition1.142
Statement uses 2
Statement dependency previews
Preview
Definition 1.130
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Irreducible element. (LMFDB)

An element x \ne 0 of a commutative ring R is irreducible if it is not a unit and has the property that whenever x=yz for some y,z \in R, either y or z is a unit.

Depends on: Definition 1.130 Definition 1.147

Lean code for Definition1.142●1 definition
  • structure(2 fields)defined in Mathlib/Algebra/Group/Irreducible/Defs.lean
    complete
    structure Irreducible.{u_1} {M : Type u_1} [Monoid M] (p : M) : Prop
    structure Irreducible.{u_1} {M : Type u_1}
      [Monoid M] (p : M) : Prop
    `Irreducible p` states that `p` is non-unit and only factors into units.
    
    We explicitly avoid stating that `p` is non-zero, this would require a semiring. Assuming only a
    monoid allows us to reuse irreducible for associated elements. 
    
    [Wikidata Q2989575](https://www.wikidata.org/wiki/Q2989575)
    not_isUnit : ¬IsUnit p
    An irreducible element is not a unit. 
    isUnit_or_isUnit : ∀ ⦃a b : M⦄, p = a * b → IsUnit a ∨ IsUnit b
    If an irreducible element factors, then one factor is a unit. 
Definition1.143
Statement uses 2
Statement dependency previews
Preview
Definition 1.130
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.103
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Maximal ideal. (LMFDB)

In a ring R, an ideal M is maximal if M\neq R and for all ideals I of R,

M\subseteq I \subseteq R\implies M=I\quad\text{or}\quad I=R.

Depends on: Definition 1.130 Definition 1.138

Lean code for Definition1.143●1 definition
  • class(1 method)defined in Mathlib/RingTheory/Ideal/Maximal.lean
    complete
    class Ideal.IsMaximal.{u} {α : Type u} [Semiring α] (I : Ideal α) : Prop
    class Ideal.IsMaximal.{u} {α : Type u}
      [Semiring α] (I : Ideal α) : Prop
    An ideal is maximal if it is maximal in the collection of proper ideals. 
    out : IsCoatom I
    The maximal ideal is a coatom in the ordering on ideals; that is, it is not the entire ring,
    and there are no other proper ideals strictly containing it. 
Definition1.144
Statement uses 2
Statement dependency previews
Preview
Definition 1.130
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Noetherian ring. (LMFDB)

A commutative ring R is Noetherian if for every ascending chain of ideals

I_1\subseteq I_2\subseteq I_3\subseteq \cdots

there exists N such that for all n\geq N, I_n=I_N.

Depends on: Definition 1.130 Definition 1.138

Lean code for Definition1.144●1 definition
  • abbrevdefined in Mathlib/RingTheory/Noetherian/Defs.lean
    complete
    abbrev IsNoetherianRing.{u_1} (R : Type u_1) [Semiring R] : Prop
    abbrev IsNoetherianRing.{u_1} (R : Type u_1)
      [Semiring R] : Prop
    A (semi)ring is Noetherian if it is Noetherian as a module over itself,
    i.e. all its ideals are finitely generated. 
Definition1.145
Statement uses 2
Statement dependency previews
Preview
Definition 1.130
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 4
Reverse dependency previews
Preview
Definition 1.28
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Prime ideal. (LMFDB)

If R is a commutative ring R, an ideal I \ne R is prime if for all a,b\in R,

ab\in I \implies a\in I \quad \text{or}\quad b\in I.

Depends on: Definition 1.130 Definition 1.138

Lean code for Definition1.145●1 definition
  • class(2 methods)defined in Mathlib/RingTheory/Ideal/Prime.lean
    complete
    class Ideal.IsPrime.{u} {α : Type u} [Semiring α] (I : Ideal α) : Prop
    class Ideal.IsPrime.{u} {α : Type u}
      [Semiring α] (I : Ideal α) : Prop
    An ideal `P` of a ring `R` is prime if `P ≠ R` and `xy ∈ P → x ∈ P ∨ y ∈ P` 
    ne_top' : I ≠ ⊤
    The prime ideal is not the entire ring. 
    mem_or_mem' : ∀ {x y : α}, x * y ∈ I → x ∈ I ∨ y ∈ I
    If a product lies in the prime ideal, then at least one element lies in the prime ideal. 
Definition1.146
Statement uses 2
Statement dependency previews
Preview
Definition 1.135
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Principal fractional ideal. (LMFDB)

Let R be an integral domain with field of fractions K. If a\in K^\times, then the principal fractional ideal generated by a is the set

\{ar\mid r\in R\}\,.

Depends on: Definition 1.135 Definition 1.140

Lean code for Definition1.146●3 declarations
  • defdefined in Mathlib/RingTheory/FractionalIdeal/Operations.lean
    complete
    def FractionalIdeal.spanSingleton.{u_1, u_2} {R : Type u_1} [CommRing R]
      (S : Submonoid R) {P : Type u_2} [CommRing P] [Algebra R P]
      [IsLocalization S P] : P →*₀ FractionalIdeal S P
    def FractionalIdeal.spanSingleton.{u_1, u_2}
      {R : Type u_1} [CommRing R]
      (S : Submonoid R) {P : Type u_2}
      [CommRing P] [Algebra R P]
      [IsLocalization S P] :
      P →*₀ FractionalIdeal S P
    `spanSingleton S x` is the fractional ideal generated by `x`, as a monoid with zero
    homomorphism from `P` to `FractionalIdeal S P`. 
  • defdefined in Mathlib/RingTheory/ClassGroup/Basic.lean
    complete
    def toPrincipalIdeal.{u_3, u_4} (R : Type u_3) (K : Type u_4) [CommRing R]
      [Field K] [Algebra R K] [IsFractionRing R K] :
      Kˣ →* (FractionalIdeal (nonZeroDivisors R) K)ˣ
    def toPrincipalIdeal.{u_3, u_4} (R : Type u_3)
      (K : Type u_4) [CommRing R] [Field K]
      [Algebra R K] [IsFractionRing R K] :
      Kˣ →*
        (FractionalIdeal (nonZeroDivisors R)
            K)ˣ
    `toPrincipalIdeal R K x` sends `x ≠ 0 : K` to the fractional `R`-ideal generated by `x` 
  • theoremdefined in Mathlib/RingTheory/FractionalIdeal/Operations.lean
    complete
    theorem FractionalIdeal.mem_spanSingleton.{u_1, u_2} {R : Type u_1} [CommRing R]
      (S : Submonoid R) {P : Type u_2} [CommRing P] [Algebra R P]
      [IsLocalization S P] {x y : P} :
      x ∈ (FractionalIdeal.spanSingleton S) y ↔ ∃ z, z • y = x
    theorem FractionalIdeal.mem_spanSingleton.{u_1,
        u_2}
      {R : Type u_1} [CommRing R]
      (S : Submonoid R) {P : Type u_2}
      [CommRing P] [Algebra R P]
      [IsLocalization S P] {x y : P} :
      x ∈
          (FractionalIdeal.spanSingleton S)
            y ↔
        ∃ z, z • y = x
Definition1.147
Statement uses 2
Statement dependency previews
Preview
Definition 1.75
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 1.103
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Unit in a ring. (LMFDB)

A unit in a commutative ring R is an element x \in R so that there exists y \in R with xy = 1. The set of units in R is denoted R^* or R^\times and forms a group under multiplication.

Depends on: Definition 1.75 Definition 1.130

Lean code for Definition1.147●1 definition
  • defdefined in Mathlib/Algebra/Group/Units/Defs.lean
    complete
    def IsUnit.{u_1} {M : Type u_1} [Monoid M] (a : M) : Prop
    def IsUnit.{u_1} {M : Type u_1} [Monoid M]
      (a : M) : Prop
    An element `a : M` of a `Monoid` is a unit if it has a two-sided inverse.
    The actual definition says that `a` is equal to some `u : Mˣ`, where
    `Mˣ` is a bundled version of `IsUnit`. 
Definition1.148
uses 1used by 1✓L∃∀N

Zero divisor. (LMFDB)

An element a in a ring R is a zero divisor if a\neq 0_R and there exists an element b\in R-\{0_R\} such that

a\cdot b = 0_R \qquad \text{or}\qquad b\cdot a = 0_R.

Depends on: Definition 1.130

Lean code for Definition1.148●2 declarations
  • defdefined in Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean
    complete
    def nonZeroDivisors.{u_1} (M₀ : Type u_1) [MonoidWithZero M₀] : Submonoid M₀
    def nonZeroDivisors.{u_1} (M₀ : Type u_1)
      [MonoidWithZero M₀] : Submonoid M₀
    The submonoid of non-zero-divisors of a `MonoidWithZero` `M₀`. 
  • theoremdefined in Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean
    complete
    theorem notMem_nonZeroDivisors_iff.{u_2} {M₀ : Type u_2} [MonoidWithZero M₀]
      {r : M₀} :
      r ∉ nonZeroDivisors M₀ ↔
        {s | r * s = 0 ∧ s ≠ 0}.Nonempty ∨ {s | s * r = 0 ∧ s ≠ 0}.Nonempty
    theorem notMem_nonZeroDivisors_iff.{u_2}
      {M₀ : Type u_2} [MonoidWithZero M₀]
      {r : M₀} :
      r ∉ nonZeroDivisors M₀ ↔
        {s | r * s = 0 ∧ s ≠ 0}.Nonempty ∨
          {s | s * r = 0 ∧ s ≠ 0}.Nonempty
Definition1.149
uses 0used by 1✓L∃∀N

Euler gamma function. (LMFDB)

The (Euler) gamma function \Gamma(z) is defined by the integral

\Gamma(z) = \int_0^{ \infty } e^{-t} t^{z} \frac{dt}{t}

for Re(z) > 0. It satisfies the functional equation

\Gamma(z+1) = z \Gamma(z),

and can thus be continued into a meromorphic function on the complex plane, whose poles are at the non-positive integers \{0,-1,-2,\ldots\}.

Lean code for Definition1.149●1 definition
  • defdefined in Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean
    complete
    def Complex.Gamma (s : ℂ) : ℂ
    def Complex.Gamma (s : ℂ) : ℂ
    The `Γ` function (of a complex variable `s`). 
Definition1.150
Statement uses 8
Statement dependency previews
Preview
Definition 1.5
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1XL∃∀N

Sato-Tate group. (LMFDB)

The Sato-Tate group of a motive X is a compact Lie group G containing (as a dense subset) the image of a representation that maps Frobenius elements to conjugacy classes. When X is an Artin motive, G corresponds to the image of the Artin representation; when X is an abelian variety over a number field, one can define G in terms of an \ell-adic Galois representation attached to X.

For motives of even weight w and degree d, the Sato-Tate group is a compact subgroup of the orthogonal group \mathrm{O}(d). For motives of odd weight w and even degree d, the Sato-Tate group is a compact subgroup of the unitary symplectic group \mathrm{USp}(d). For motives X arising as abelian varieties, the weight is always w=1 and the the degree is d=2g, where g is the dimension of the variety.

The simplest case is when X is an elliptic curve E/\Q, in which case G is either \mathrm{SU}(2)=\mathrm{USp}(2) (the generic case), or G is N(\mathrm{U}(1)), the normalizer of the subgroup \mathrm{U}(1) of diagonal matrices in \mathrm{SU}(2), which contains \mathrm{U}(1) with index 2.

The generalized Sato-Tate conjecture states that when ordered by norm, the sequence of images of Frobenius elements under this representation is equidistributed with respect to the pushforward of the Haar measure of G onto its set of conjugacy classes. This is known for all elliptic curves over totally real number fields (including \mathbb{Q}) or CM fields.

Depends on: Definition 1.5 Definition 1.13 Definition 1.35 Definition 3.1 Definition 1.86 Definition 2.8 Definition 2.67 Definition 1.152

Definition1.151
uses 0used by 1✓L∃∀N

Symplectic form. (LMFDB)

A symplectic form on a vector space V over a field k is a non-degenerate alternating bilinear form \omega\colon V\times V\to k. This means that

  • if \omega(u,v)=0 for all v\in V then u=0 (non-degenerate);

  • \omega(v,v)=0 for all v\in V (alternating);

  • \omega(\lambda u+v,w)=\lambda\omega(u,v)+\omega(v,w) and \omega(u,\lambda v+w)=\omega(u)+\lambda\omega(v,w) for all \lambda\in k, u,v,w\in V (bilinear).

A finite dimensional vector space admitting a symplectic form \omega necessarily has even dimension 2n, and in this case \omega can be represented by a matrix \Omega\in k^{2n\times 2n} that satisfies u^\intercal\Omega v=\omega(u,w) for all u,v\in V. One can always choose a basis for V so that

\Omega = \begin{bmatrix} 0 & I_n\\ -I_n & 0\end{bmatrix},

where I_n denotes the n\times n identity matrix.

Lean code for Definition1.151●3 definitions
  • defdefined in Mathlib/LinearAlgebra/BilinearForm/Properties.lean
    complete
    def LinearMap.BilinForm.IsAlt.{u_1, u_2} {R : Type u_1} {M : Type u_2}
      [CommSemiring R] [AddCommMonoid M] [Module R M]
      (B : LinearMap.BilinForm R M) : Prop
    def LinearMap.BilinForm.IsAlt.{u_1, u_2}
      {R : Type u_1} {M : Type u_2}
      [CommSemiring R] [AddCommMonoid M]
      [Module R M]
      (B : LinearMap.BilinForm R M) : Prop
    The proposition that a bilinear form is alternating 
  • abbrevdefined in Mathlib/LinearAlgebra/BilinearForm/Properties.lean
    complete
    abbrev LinearMap.BilinForm.Nondegenerate.{u_1, u_2} {R : Type u_1}
      {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M]
      (B : LinearMap.BilinForm R M) : Prop
    abbrev LinearMap.BilinForm.Nondegenerate.{u_1,
        u_2}
      {R : Type u_1} {M : Type u_2}
      [CommSemiring R] [AddCommMonoid M]
      [Module R M]
      (B : LinearMap.BilinForm R M) : Prop
    A nondegenerate bilinear form is a bilinear form that is both left-separating and
    right-separating, i.e. if `B x y = 0` for all `y` then `x = 0`, and if `B x y = 0` for all `x` then
    `y = 0`.
    
    Note that these conditions are independent of each other in general, but in the common case of
    finite-dimensional vector spaces (or, more generally, finite free modules over an integral
    domain), either of these conditions implies the other; see
    `LinearMap.BilinForm.Nondegenerate.ofSeparatingLeft` and
    `LinearMap.BilinForm.nondegenerate_iff_ker_eq_bot`, proved in a later file.
    
  • abbrevdefined in Mathlib/LinearAlgebra/BilinearMap.lean
    complete
    abbrev LinearMap.BilinForm.{u_2, u_5} (R : Type u_2) [CommSemiring R]
      (M : Type u_5) [AddCommMonoid M] [Module R M] : Type (max u_2 u_5)
    abbrev LinearMap.BilinForm.{u_2, u_5}
      (R : Type u_2) [CommSemiring R]
      (M : Type u_5) [AddCommMonoid M]
      [Module R M] : Type (max u_2 u_5)
    For convenience, a shorthand for the type of bilinear forms from `M` to `R`. 
Definition1.152
uses 1used by 1✓L∃∀N

Unitary symplectic group. (LMFDB)

For a positive even integer d the unitary symplectic group \mathrm{USp}(d) is the group of unitary transformations of a d-dimensional \C-vector space equipped with a symplectic form \Omega. In other words, the subgroup of \GL_d(\mathbb{C}) whose elements A satisfy:

  • A^{-1} = \bar A^{\intercal} (unitary);

  • A^\intercal \Omega A=\Omega (symplectic).

It is a compact real Lie group that can also be viewed as the intersection of \mathrm{U}(d) and \mathrm{Sp}(d,\C) in \GL_d(\C).

Depends on: Definition 1.151

Lean code for Definition1.152●4 declarations
  • abbrevdefined in Mathlib/LinearAlgebra/UnitaryGroup.lean
    complete
    abbrev Matrix.unitaryGroup.{u, v} (n : Type u) [DecidableEq n] [Fintype n]
      (α : Type v) [CommRing α] [StarRing α] : Submonoid (Matrix n n α)
    abbrev Matrix.unitaryGroup.{u, v} (n : Type u)
      [DecidableEq n] [Fintype n] (α : Type v)
      [CommRing α] [StarRing α] :
      Submonoid (Matrix n n α)
    `Matrix.unitaryGroup n` is the group of `n` by `n` matrices where the star-transpose is the
    inverse.
    
  • defdefined in Mathlib/LinearAlgebra/SymplecticGroup.lean
    complete
    def Matrix.symplecticGroup.{u_1, u_2} (l : Type u_1) (R : Type u_2)
      [DecidableEq l] [CommRing R] [Fintype l] :
      Submonoid (Matrix (l ⊕ l) (l ⊕ l) R)
    def Matrix.symplecticGroup.{u_1, u_2}
      (l : Type u_1) (R : Type u_2)
      [DecidableEq l] [CommRing R]
      [Fintype l] :
      Submonoid (Matrix (l ⊕ l) (l ⊕ l) R)
    The group of symplectic matrices over a ring `R`. 
  • theoremdefined in Mathlib/LinearAlgebra/SymplecticGroup.lean
    complete
    theorem SymplecticGroup.mem_iff'.{u_1, u_2} {l : Type u_1} {R : Type u_2}
      [DecidableEq l] [Fintype l] [CommRing R]
      {A : Matrix (l ⊕ l) (l ⊕ l) R} :
      A ∈ Matrix.symplecticGroup l R ↔
        A.transpose * Matrix.J l R * A = Matrix.J l R
    theorem SymplecticGroup.mem_iff'.{u_1, u_2}
      {l : Type u_1} {R : Type u_2}
      [DecidableEq l] [Fintype l] [CommRing R]
      {A : Matrix (l ⊕ l) (l ⊕ l) R} :
      A ∈ Matrix.symplecticGroup l R ↔
        A.transpose * Matrix.J l R * A =
          Matrix.J l R
  • defdefined in Mathlib/LinearAlgebra/SymplecticGroup.lean
    complete
    def Matrix.J.{u_1, u_2} (l : Type u_1) (R : Type u_2) [DecidableEq l]
      [CommRing R] : Matrix (l ⊕ l) (l ⊕ l) R
    def Matrix.J.{u_1, u_2} (l : Type u_1)
      (R : Type u_2) [DecidableEq l]
      [CommRing R] : Matrix (l ⊕ l) (l ⊕ l) R
    The matrix defining the canonical skew-symmetric bilinear form.