Documentation

LeanPool.FltRegular.NumberTheory.Hilbert92

Hilbert's theorem 92 #

This file studies systems of relative units in cyclic extensions for the proof of Hilbert's theorem 92.

@[reducible, inline]
abbrev systemOfUnits.IsMaximal {s p : } {G : Type u_4} [AddCommGroup G] [Module (CyclotomicIntegers p) G] (sys : systemOfUnits p G s) :

A system of units is maximal if the subgroup generated by it has finite index.

Equations
Instances For
    theorem systemOfUnits.isMaximal {s : } (p : ) (hp : Nat.Prime p) (G : Type u_3) [AddCommGroup G] [Module.Finite G] (hf : Module.finrank G = s * (p - 1)) [Module (CyclotomicIntegers p) G] (sys : systemOfUnits p G s) :

    A full-rank system of units is maximal.

    noncomputable def systemOfUnits.index {s : } (p : ) (G : Type u_3) [AddCommGroup G] [Module (CyclotomicIntegers p) G] (sys : systemOfUnits p G s) :

    The index of the submodule generated by a maximal system of units.

    Equations
    Instances For

      A system of units is fundamental if it's maximal and the submodule generated by the elements of the system has smallest index.

      Equations
      Instances For
        theorem systemOfUnits.IsFundamental.existence (p : ) (hp : Nat.Prime p) (G : Type u_3) [AddCommGroup G] (s : ) (hf : Module.finrank G = s * (p - 1)) [Module.Finite G] [Module.Free G] [Module (CyclotomicIntegers p) G] :
        ∃ (S : systemOfUnits p G s), IsFundamental p G S
        theorem systemOfUnits.IsFundamental.lemma2 (p : ) (hp : Nat.Prime p) (G : Type u_3) [AddCommGroup G] (s : ) (hf : Module.finrank G = s * (p - 1)) [Module.Finite G] [Module (CyclotomicIntegers p) G] (S : systemOfUnits p G s) (hs : IsFundamental p G S) (i : Fin s) (a : Fin s →₀ CyclotomicIntegers p) (ha : a i = 1) (g : G) :
        theorem systemOfUnits.IsFundamental.corollary (p : ) (hp : Nat.Prime p) (G : Type u_3) [AddCommGroup G] (s : ) (hf : Module.finrank G = s * (p - 1)) [Module.Finite G] [Module (CyclotomicIntegers p) G] (S : systemOfUnits p G s) (hs : IsFundamental p G S) (a : Fin s) (ha : ∃ (i : Fin s), ¬p a i) (g : G) :
        (1 - CyclotomicIntegers.zeta p) g i : Fin s, a i S.units i
        def RelativeUnits (k : Type u_4) (K : Type u_5) [Field k] [Field K] [Algebra k K] :
        Type u_5

        Relative units of an extension, modulo units coming from the base field.

        Equations
        Instances For
          @[instance_reducible]
          instance instCommGroupRelativeUnits {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] :
          Equations
          theorem norm_eq_prod_pow_gen {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] [IsGalois k K] [FiniteDimensional k K] (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) (η : K) :
          (algebraMap k K) ((Algebra.norm k) η) = iFinset.range (orderOf σ), (σ ^ i) η
          theorem Hilbert92_aux0 (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) (h : ) (ν : (NumberField.RingOfIntegers k)ˣ) ( : IsPrimitiveRoot ((algebraMap (NumberField.RingOfIntegers k) k) ν) (p ^ h)) (H : ∀ (ε : (NumberField.RingOfIntegers K)ˣ), (algebraMap k K) ((algebraMap (NumberField.RingOfIntegers k) k) ν) ^ p ^ (h - 1) (algebraMap (NumberField.RingOfIntegers K) K) ε / σ ((algebraMap (NumberField.RingOfIntegers K) K) ε)) :
          noncomputable def relativeUnitsMap {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] [NumberField K] [NumberField k] (σ : K →ₐ[k] K) :

          The map on relative units induced by an algebra endomorphism of the extension.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem relativeUnitsMap_one {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] [NumberField K] [NumberField k] (x : RelativeUnits k K) :
            theorem relativeUnitsMap_mul_apply {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] [NumberField K] [NumberField k] {f g : K →ₐ[k] K} (x : RelativeUnits k K) :
            noncomputable def relativeUnitsMapHom {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] [NumberField K] [NumberField k] :

            The monoid homomorphism from algebra endomorphisms to endomorphisms of relative units.

            Equations
            Instances For
              @[simp]
              theorem relativeUnitsMapHom_apply {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] [NumberField K] [NumberField k] (σ : K →ₐ[k] K) :
              @[reducible, inline]
              abbrev relativeUnitsWithGenerator (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] (hp : Nat.Prime p) (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) :
              Type u_1

              Relative units bundled with the generator data used in Hilbert 92.

              Equations
              Instances For
                @[instance_reducible]
                instance instCommGroupRelativeUnitsWithGenerator (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) :
                Equations
                def unitToUHom (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) :

                The additive homomorphism from units to the torsion-free quotient of relative units.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def unitToU (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) (u : (NumberField.RingOfIntegers K)ˣ) :

                  The image of a unit in the torsion-free quotient of relative units.

                  Equations
                  Instances For
                    theorem unit_to_U_one (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) :
                    unitToU p hp hKL σ 1 = 0
                    theorem unit_to_U_mul (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) (x y : (NumberField.RingOfIntegers K)ˣ) :
                    unitToU p hp hKL σ (x * y) = unitToU p hp hKL σ x + unitToU p hp hKL σ y
                    theorem unit_to_U_inv (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) (x : (NumberField.RingOfIntegers K)ˣ) :
                    unitToU p hp hKL σ x⁻¹ = -unitToU p hp hKL σ x
                    theorem unit_to_U_div (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) (x y : (NumberField.RingOfIntegers K)ˣ) :
                    unitToU p hp hKL σ (x / y) = unitToU p hp hKL σ x - unitToU p hp hKL σ y
                    theorem unit_to_U_prod (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) {ι : Type u_4} (s : Finset ι) (f : ι(NumberField.RingOfIntegers K)ˣ) :
                    unitToU p hp hKL σ (∏ is, f i) = is, unitToU p hp hKL σ (f i)
                    theorem unit_to_U_pow (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) (x : (NumberField.RingOfIntegers K)ˣ) (n : ) :
                    unitToU p hp hKL σ (x ^ n) = n unitToU p hp hKL σ x
                    theorem unit_to_U_zpow (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) (x : (NumberField.RingOfIntegers K)ˣ) (n : ) :
                    unitToU p hp hKL σ (x ^ n) = n unitToU p hp hKL σ x
                    theorem unit_to_U_map (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) (x : (NumberField.RingOfIntegers k)ˣ) :
                    theorem exists_pow_smul_eq_and_not_dvd {ι : Type u_4} [Finite ι] (f : ι) (hf : f 0) (p : ) (hp : p 1) :
                    ∃ (n : ) (f' : ι), f = p ^ n f' ∃ (i : ι), ¬p f' i
                    theorem lh_pow_free_aux (p : ) (hp : Nat.Prime p) {M : Type u_4} [CommGroup M] [Module.Finite (Additive M)] (ν : M) (hk : ∀ (ε : M) (n : ), ε ^ p ^ n = 1∃ (i : ), ν ^ i = ε) (r : ) (hr : Module.finrank (Additive M) < r) (η : Fin rAdditive M) :
                    ∃ (a : ) (ι : Fin r) (i : Fin r), i : Fin r, ι i η i = a Additive.ofMul ν ¬p ι i
                    theorem lh_pow_free' (p : ) (hp : Nat.Prime p) {M : Type u_4} [CommGroup M] [Module.Finite (Additive M)] (ν : M) (hk : ∀ (ε : M) (n : ), ε ^ p ^ n = 1∃ (i : ), ν ^ i = ε) (r : ) (hr : Module.finrank (Additive M) + 1 < r) (η : Fin rAdditive M) :
                    ∃ (a : ) (ι : Fin r) (i : Fin r), i : Fin r, ι i η i = (a * p) Additive.ofMul ν ¬p ι i (ν = 1i r - 1)
                    theorem lh_pow_free (p : ) {k : Type u_2} [Field k] (hp : Nat.Prime p) [NumberField k] (ν : (NumberField.RingOfIntegers k)ˣ) (hk : ∀ (ε : (NumberField.RingOfIntegers k)ˣ) (n : ), ε ^ p ^ n = 1∃ (i : ), ν ^ i = ε) (η : Fin (NumberField.Units.rank k + 2)Additive (NumberField.RingOfIntegers k)ˣ) :
                    ∃ (a : ) (ι : Fin (NumberField.Units.rank k + 2)) (i₀ : Fin (NumberField.Units.rank k + 2)), i : Fin (NumberField.Units.rank k + 2), ι i η i = (a * p) Additive.ofMul ν ¬p ι i₀ (ν = 1i₀ Fin.last (NumberField.Units.rank k + 1))
                    theorem Hilbert92_aux1 (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] (hKL : Module.finrank k K = p) [NumberField k] [NumberField K] (n : ) (H : Fin nAdditive (NumberField.RingOfIntegers K)ˣ) (ν : (NumberField.RingOfIntegers k)ˣ) (a : ) (ι : Fin n) (η : Fin nAdditive (NumberField.RingOfIntegers k)ˣ) (ha : i : Fin n, ι i η i = (a * p) Additive.ofMul ν) ( : ∀ (i : Fin n), (algebraMap (NumberField.RingOfIntegers k) k) (Additive.toMul (η i)) = (Algebra.norm k) ((algebraMap (NumberField.RingOfIntegers K) K) (Additive.toMul (H i)))) :
                    @[instance_reducible]
                    noncomputable instance relativeUnitsModule (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField k] [NumberField K] [IsGalois k K] :
                    Equations
                    theorem relativeUnitsModule_zeta_smul (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField k] [NumberField K] [IsGalois k K] (x : (NumberField.RingOfIntegers K)ˣ) :
                    theorem instFiniteIntAdditiveRelativeUnitsWithGenerator (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField K] :
                    theorem instFiniteIntQuotientAdditiveRelativeUnitsWithGeneratorAddSubgroupTorsion (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField K] :
                    noncomputable def unitlifts (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField k] [NumberField K] [IsGalois k K] (S : systemOfUnits p (Additive (relativeUnitsWithGenerator p hp hKL σ ) AddCommGroup.torsion (Additive (relativeUnitsWithGenerator p hp hKL σ ))) (NumberField.Units.rank k + 1)) :

                    Arbitrary unit representatives lifting a system of units.

                    Equations
                    Instances For
                      theorem unitlifts_spec (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField k] [NumberField K] [IsGalois k K] (S : systemOfUnits p (Additive (relativeUnitsWithGenerator p hp hKL σ ) AddCommGroup.torsion (Additive (relativeUnitsWithGenerator p hp hKL σ ))) (NumberField.Units.rank k + 1)) (i : Fin (NumberField.Units.rank k + 1)) :
                      unitToU p hp hKL σ (Additive.toMul (unitlifts p hp hKL σ S i)) = S.units i
                      theorem u_lemma2 (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField k] [NumberField K] [IsGalois k K] (u v : (NumberField.RingOfIntegers K)ˣ) (hu : (algebraMap (NumberField.RingOfIntegers K) K) u = (algebraMap (NumberField.RingOfIntegers K) K) v / σ ((algebraMap (NumberField.RingOfIntegers K) K) v)) :
                      unitToU p hp hKL σ u = (1 - CyclotomicIntegers.zeta p) unitToU p hp hKL σ v
                      theorem Hilbert92_aux2 (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField k] [NumberField K] [IsGalois k K] (E : (NumberField.RingOfIntegers K)ˣ) (ν : k) (hE : (algebraMap k K) ν = (algebraMap (NumberField.RingOfIntegers K) K) E / σ ((algebraMap (NumberField.RingOfIntegers K) K) E)) ( : ν ^ p = 1) (hpodd : p 2) :
                      theorem finrank_G (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField k] [NumberField K] [IsGalois k K] [IsUnramifiedAtInfinitePlaces k K] :
                      theorem Hilbert91 (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField k] [NumberField K] [IsGalois k K] [IsUnramifiedAtInfinitePlaces k K] :
                      theorem h_exists' (p : ) {k : Type u_2} [Field k] (hp : Nat.Prime p) [NumberField k] :
                      ∃ (h : ) (ν : (NumberField.RingOfIntegers k)ˣ), IsPrimitiveRoot ((algebraMap (NumberField.RingOfIntegers k) k) ν) (p ^ h) ∀ (ε : (NumberField.RingOfIntegers k)ˣ) (n : ), ε ^ p ^ n = 1∃ (i : ), ν ^ i = ε
                      theorem almostHilbert92 (p : ) {K : Type u_1} [Field K] {k : Type u_2} [Field k] (hp : Nat.Prime p) [Algebra k K] (hKL : Module.finrank k K = p) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) [NumberField k] [NumberField K] [IsGalois k K] [IsUnramifiedAtInfinitePlaces k K] (hpodd : p 2) :
                      theorem Hilbert92 {K : Type u_1} [Field K] {k : Type u_2} [Field k] [Algebra k K] [IsGalois k K] [NumberField k] [NumberField K] (hKL : Nat.Prime (Module.finrank k K)) (hpodd : Module.finrank k K 2) (σ : Gal(K/k)) ( : ∀ (x : Gal(K/k)), x Subgroup.zpowers σ) :