Definitions/Def_HopfAlgebra_HopfKer.lean
Coinvariants and the Hopf–Galois condition for bialgebra maps
Throughout, R is a commutative ring and \pi\colon A\to B a homomorphism of commutative R-bialgebras. The first definition is the right coaction \mathrm{coaction}\,\pi = (\mathrm{id}_A\otimes\pi)\circ\Delta_A \colon A\to A\otimes_R B, an R-algebra homomorphism obtained by composing the comultiplication of A, viewed as an algebra map, with the tensor product of the identity of A and the algebra map underlying \pi. The subalgebra \mathrm{hopfKer}\,\pi\subseteq A is the equalizer of this coaction and the inclusion a\mapsto a\otimes 1 of A into A\otimes_R B; thus a lies in it precisely when \mathrm{coaction}\,\pi\,(a)=a\otimes 1, the content of mem_hopfKer_iff and coaction_eq_of_mem. Next, \mathrm{canAlgHom}\,\pi\colon A\otimes_R A\to A\otimes_R B is the algebra homomorphism determined (the target being commutative) by a\otimes 1\mapsto a\otimes 1 on the left factor and by the coaction on the right factor, so that a\otimes a'\mapsto (a\otimes 1)\cdot\mathrm{coaction}\,\pi\,(a'); canMap is its underlying R-linear map. The accompanying lemmas record the values on a\otimes 1 and 1\otimes a and the balancing identity \mathrm{can}((ah)\otimes a')=\mathrm{can}(a\otimes (ha')) for h\in\mathrm{hopfKer}\,\pi.
The set \mathrm{balancingRelations}\,\pi\subseteq A\otimes_R A consists of the elements (ah)\otimes a'-a\otimes(ha') with a,a'\in A and h\in\mathrm{hopfKer}\,\pi; canMap_eq_zero_of_mem_span shows that canMap vanishes on the R-span of this set. Finally, the predicate \mathrm{IsHopfGalois}\,\pi is the conjunction of two conditions: canMap π is surjective, and every element of its kernel lies in the R-span of the balancing relations. Together with the previous lemma this says that canMap induces an isomorphism A\otimes_{\mathrm{hopfKer}\,\pi}A\xrightarrow{\ \sim\ }A\otimes_R B, but the condition is formulated without forming the tensor product over the subalgebra: it is stated as surjectivity plus an explicit description of the kernel by generators.
Relation to Mathlib
Mathlib supplies the ambient notions used here — Bialgebra, bialgebra homomorphisms A →ₐc[R] B, AlgHom.equalizer and the algebra structure on tensor products — but has no notion of coinvariant subalgebra or Hopf–Galois extension; hopfKer, canMap and IsHopfGalois are the project's own.
Where it is used
In geometric terms \mathrm{Spec} of \pi is a homomorphism of affine group schemes, \mathrm{hopfKer}\,\pi is the candidate coordinate ring of the quotient, and \mathrm{IsHopfGalois}\,\pi expresses that \mathrm{Spec}\,A\to\mathrm{Spec}(\mathrm{hopfKer}\,\pi) is a torsor under \mathrm{Spec}\,B. This module is imported broadly by the parts of the development that handle quotients of affine (group) schemes by subgroup schemes.
References
- S. U. Chase and M. E. Sweedler, Hopf Algebras and Galois Theory, Lecture Notes in Mathematics 97, Springer, 1969
- W. C. Waterhouse, Introduction to Affine Group Schemes, Graduate Texts in Mathematics 66, Springer, 1979
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 70 lines
- 16 declarations
- used in the statements of 70 theorems and imported by 107 proofs
- imports 0 definition modules
Source file: Definitions/Def_HopfAlgebra_HopfKer.lean
Imports
- only Mathlib
Declarations
- def
HopfAlgebra.coaction - theorem
HopfAlgebra.coaction_apply - def
HopfAlgebra.hopfKer - theorem
HopfAlgebra.mem_hopfKer_iff - theorem
HopfAlgebra.coaction_eq_of_mem - def
HopfAlgebra.canAlgHom - theorem
HopfAlgebra.canAlgHom_tmul - def
HopfAlgebra.canMap - theorem
HopfAlgebra.canMap_apply - theorem
HopfAlgebra.canMap_tmul - theorem
HopfAlgebra.canMap_mul_tmul - theorem
HopfAlgebra.canMap_tmul_one - theorem
HopfAlgebra.canMap_one_tmul - def
HopfAlgebra.balancingRelations - theorem
HopfAlgebra.canMap_eq_zero_of_mem_span - def
HopfAlgebra.IsHopfGalois
Source
import Mathlib set_option autoImplicit false open scoped TensorProduct namespace HopfAlgebra universe u v w variable {R : Type u} [CommRing R] {A : Type v} [CommRing A] [Bialgebra R A] {B : Type w} [CommRing B] [Bialgebra R B] noncomputable def coaction (π : A →ₐc[R] B) : A →ₐ[R] A ⊗[R] B := (Algebra.TensorProduct.map (AlgHom.id R A) (π : A →ₐ[R] B)).comp (Bialgebra.comulAlgHom R A) theorem coaction_apply (π : A →ₐc[R] B) (a : A) : coaction π a = Algebra.TensorProduct.map (AlgHom.id R A) (π : A →ₐ[R] B) (Coalgebra.comul (R := R) a) := rfl noncomputable def hopfKer (π : A →ₐc[R] B) : Subalgebra R A := AlgHom.equalizer (coaction π) (Algebra.TensorProduct.includeLeft : A →ₐ[R] A ⊗[R] B) theorem mem_hopfKer_iff (π : A →ₐc[R] B) (a : A) : a ∈ hopfKer π ↔ coaction π a = a ⊗ₜ[R] 1 := Iff.rfl theorem coaction_eq_of_mem (π : A →ₐc[R] B) {a : A} (h : a ∈ hopfKer π) : coaction π a = a ⊗ₜ[R] 1 := h noncomputable def canAlgHom (π : A →ₐc[R] B) : A ⊗[R] A →ₐ[R] A ⊗[R] B := Algebra.TensorProduct.lift (Algebra.TensorProduct.includeLeft : A →ₐ[R] A ⊗[R] B) (coaction π) (fun _ _ => Commute.all _ _) @[simp] theorem canAlgHom_tmul (π : A →ₐc[R] B) (a a' : A) : canAlgHom π (a ⊗ₜ[R] a') = (a ⊗ₜ[R] (1 : B)) * coaction π a' := Algebra.TensorProduct.lift_tmul _ _ _ a a' noncomputable def canMap (π : A →ₐc[R] B) : A ⊗[R] A →ₗ[R] A ⊗[R] B := (canAlgHom π).toLinearMap theorem canMap_apply (π : A →ₐc[R] B) (z : A ⊗[R] A) : canMap π z = canAlgHom π z := rfl @[simp] theorem canMap_tmul (π : A →ₐc[R] B) (a a' : A) : canMap π (a ⊗ₜ[R] a') = (a ⊗ₜ[R] (1 : B)) * coaction π a' := canAlgHom_tmul π a a' theorem canMap_mul_tmul (π : A →ₐc[R] B) (a a' : A) {h : A} (hh : h ∈ hopfKer π) : canMap π ((a * h) ⊗ₜ[R] a') = canMap π (a ⊗ₜ[R] (h * a')) := by rw [canMap_tmul, canMap_tmul, map_mul, coaction_eq_of_mem π hh, ← mul_assoc, Algebra.TensorProduct.tmul_mul_tmul, mul_one] theorem canMap_tmul_one (π : A →ₐc[R] B) (a : A) : canMap π (a ⊗ₜ[R] 1) = a ⊗ₜ[R] 1 := by rw [canMap_tmul, map_one, mul_one] theorem canMap_one_tmul (π : A →ₐc[R] B) (a : A) : canMap π (1 ⊗ₜ[R] a) = coaction π a := by rw [canMap_tmul, ← Algebra.TensorProduct.one_def, one_mul] def balancingRelations (π : A →ₐc[R] B) : Set (A ⊗[R] A) := {x | ∃ (a h a' : A), h ∈ hopfKer π ∧ x = (a * h) ⊗ₜ[R] a' - a ⊗ₜ[R] (h * a')} theorem canMap_eq_zero_of_mem_span (π : A →ₐc[R] B) {z : A ⊗[R] A} (hz : z ∈ Submodule.span R (balancingRelations π)) : canMap π z = 0 := by induction hz using Submodule.span_induction with | mem x hx => obtain ⟨a, h, a', hh, rfl⟩ := hx rw [map_sub, canMap_mul_tmul π a a' hh, sub_self] | zero => exact map_zero _ | add x y _ _ hx hy => rw [map_add, hx, hy, add_zero] | smul r x _ hx => rw [map_smul, hx, smul_zero] def IsHopfGalois (π : A →ₐc[R] B) : Prop := Function.Surjective (canMap π) ∧ ∀ z, canMap π z = 0 → z ∈ Submodule.span R (balancingRelations π) end HopfAlgebra
Statements phrased using this module (70)
- Rank of a Hopf order multiplies along a Hopf quotient
HopfOrder.finrank_eq_finrank_comap_hopfKer_mul_finrank_map21 below · depth 13 - Hopf order conditions pass to the Hopf kernel
HopfOrder.isHopfOrder_comap_hopfKer0 below · depth 13 - Points agreeing on the Hopf kernel: unique translating B-point
HopfAlgebra.algHom_comp_hopfKer_val_eq_iff0 below · depth 14 - Rank multiplicativity for Hopf kernels of surjective bialgebra maps
HopfAlgebra.finrank_hopfKer_mul_finrank_of_surjective17 below · depth 14 - Surjections onto finite free Hopf algebras are Hopf–Galois
HopfAlgebra.isHopfGalois_of_surjective2 below · depth 14 - Hopf-algebra layer representing a flag step quotient sheaf
ModularCurve.JZeroNeronPrimaryTorsionFlag.exists_hopfAlgebra_range_eq_hopfKer_sectionsEquiv37 below · depth 14 - Point counts multiply across a Hopf–Galois flag step
ModularCurve.JZeroNeronPrimaryTorsionFlag.natCard_algHom_succ_eq_mul_natCard_algHom_hopfKer1,076 below · depth 14 - Multiplicative flag layers: Galois acts by n_σ-th convolution power
ModularCurve.JZeroNeronPrimaryTorsionFlag.ringEquiv_apply_algHom_eq_convPow_of_range_eq_hopfKer_of_kind_eq_mult1 below · depth 14 - Constant-kind flag layers have Galois-invariant ℚ̄-points
ModularCurve.JZeroNeronPrimaryTorsionFlag.ringEquiv_apply_algHom_eq_of_range_eq_hopfKer_of_kind_eq_const0 below · depth 14 - Fppf quotient sheaf represented by the Hopf kernel
AlgebraicGeometry.Scheme.exists_sectionsEquiv_of_shortExact_of_range_eq_hopfKer_of_isHopfGalois0 below · depth 15 - Surjectivity of the canonical map for a surjective Hopf map
HopfAlgebra.canMap_surjective_of_surjective0 below · depth 15 - Hopf kernel is finite free over a PID
HopfAlgebra.finite_free_hopfKer_of_isPrincipalIdealRing0 below · depth 15 - Hopf–Galois property, faithful flatness and finite type of Hopf kernels
HopfAlgebra.isHopfGalois_and_faithfullyFlat_and_finiteType_hopfKer_of_surjective35 below · depth 15 - Point counts multiply along a surjection of Hopf algebras
HopfAlgebra.natCard_algHom_eq_mul_of_surjective5 below · depth 15 - Faithful flatness of a Hopf algebra over a Hopf kernel
HopfAlgebra.faithfullyFlat_hopfKer_of_surjective_of_isPrincipalIdealRing29 below · depth 16 - Hopf–Galois criterion via the kernel of π
HopfAlgebra.isHopfGalois_iff_ker_le_span_of_surjective0 below · depth 16 - Hopf–Galois property of surjections from cocommutative Hopf algebras
HopfAlgebra.isHopfGalois_of_isCocomm_of_finiteType_of_surjective1 below · depth 16 - Multiplicativity of point counts along a Hopf–Galois quotient
HopfAlgebra.natCard_algHom_eq_mul_of_isHopfGalois1 below · depth 16 - Connected–étale sequence over ℤₚ in Hopf-algebraic form
HopfAlgebra.exists_connected_etale_sequence_padicInt30 below · depth 17 - Exactness of Fontaine's functor along a Hopf-kernel extension
Deformation.DieudonneModule.map_baseChange_surjective_injective_fontaineHodge_of_range_eq_hopfKer57 below · depth 18 - Hopf kernel of a surjection: retraction, projectivity and rank
HopfAlgebra.exists_retraction_hopfKer_and_rankAtStalk_mul_finrank_of_surjective4 below · depth 18 - Left exactness of the Dieudonné module functor
Deformation.DieudonneModule.exact_map_hopfKerVal_map1 below · depth 19 - Fontaine's submodule is exact along a Hopf-algebra surjection
Deformation.DieudonneModule.fontaineHodge_map_surjective_and_exists_of_mem_range_of_surjective56 below · depth 19 - Kreimer–Takeuchi: A finite projective over the Hopf kernel
HopfAlgebra.finite_projective_hopfKer_of_surjective2 below · depth 19 - Vanishing of a Witt-vector homomorphism after restriction
Deformation.wittHomMap_eq_zero_iff_forall_coeff_mem_hopfKer0 below · depth 20 - Finite flat models of a short exact Galois sequence, p odd
HopfAlgebra.exists_bialgHom_surjective_range_eq_hopfKer_of_exact_of_ne_two97 below · depth 20 - Image of a Hopf kernel under a surjective bialgebra map
HopfAlgebra.map_hopfKer_eq_hopfKer_of_surjective_of_ker_eq_map_ker31 below · depth 20 - Witt-orthogonal and unipotent parts of a finite commutative Hopf algebra
HopfAlgebra.exists_wittOrthogonal_unipotent_splitting_of_perfectField1 below · depth 22 - Hopf kernel of the quotient by a Hopf subalgebra's augmentation ideal
HopfAlgebra.hopfKer_eq_of_surjective_of_ker_eq_span27 below · depth 22 - Surjectivity half of the short five lemma for Hopf algebras
HopfAlgebra.surjective_of_bijective_of_bijOn_hopfKer4 below · depth 22 - Bijectivity of R₂⊗φ from an F-vector dévissage
HopfAlgebra.bijective_baseChange_of_hasFVectDevissage43 below · depth 23 - F-vector dévissage of the generic fibre after faithfully flat base change
HopfAlgebra.exists_faithfullyFlat_hasFVectDevissage_baseChange_of_pow_eq_one45 below · depth 23 - Nested Hopf orders of a dévissable Hopf algebra coincide
HopfAlgebra.Raynaud.hopfOrder_eq_of_le_of_hasFVectDevissage40 below · depth 24 - Raynaud dévissage for split étale p-torsion Hopf algebras
HopfAlgebra.hasFVectDevissage_of_bijective_evalPoints_of_isPGroup_of_commutator_le_of_perfectField18 below · depth 24 - Exactness of Cartier duality for a Hopf quotient
CartierDual.forall_hopfKer_apply_eq_zero_iff_mem_map_ker_counit5 below · depth 25 - Bijectivity of the evaluation map passes to a Hopf kernel
HopfAlgebra.bijective_evalPoints_hopfKer_of_bijective_evalPoints0 below · depth 25 - Galois-stable subgroups of points cut out by Hopf quotients
HopfAlgebra.exists_bialgHom_surjective_points_eq_of_submonoid_of_bijective_evalPoints_of_perfectField10 below · depth 25 - Nested Hopf orders agreeing on a Hopf kernel and its quotient
HopfOrder.eq_of_le_of_comap_hopfKer_eq_of_map_eq6 below · depth 25 - Shifted Hopf-kernel tower is a p-divisible group of height h'
PDivisibleGroup.Tower.exists_tower_hopfKer_transitionLE_of_bijOn_hopfKer45 below · depth 25 - Multiplication by p along a Hopf quotient tower stabilises
PDivisibleGroup.exists_bialgHom_comp_eq_nsmulBialgHom_and_bijOn_hopfKer_of_hopf_quotient_system_of_ringOfIntegers30 below · depth 25 - Tate's Proposition 12: maps onto the subquotient tower
PDivisibleGroup.exists_bialgHom_comp_transition_eq_and_injective_of_hopf_quotient_system_of_tower_of_ringOfIntegers9 below · depth 25 - Ranks in a Hopf quotient system: p^{vr} and p^r
PDivisibleGroup.finrank_eq_pow_mul_finrank_and_finrank_hopfKer_eq_of_hopf_quotient_system_of_ringOfIntegers24 below · depth 25 - Algebra maps from the Hopf kernel extend over Ω
HopfAlgebra.exists_algHom_comp_hopfKer_val_eq_of_surjective_of_isAlgClosed0 below · depth 26 - Restriction of Ω-points to a Hopf kernel
HopfAlgebra.exists_restriction_points_hopfKer_mul_and_eq_one_iff_and_surjective_of_isAlgClosed7 below · depth 26 - Integral Hopf kernel is the trace of the generic one
HopfOrder.map_hopfKer_eq_inf_hopfKer0 below · depth 26 - Transitions map Hopf kernels onto Hopf kernels in a tower
PDivisibleGroup.Tower.map_hopfKer_transitionLE_succ_eq34 below · depth 26 - Exactness of the Hopf-kernel tower: Γᵥ=Γᵥ₊₁[p^v]
PDivisibleGroup.Tower.transition_apply_eq_zero_iff_mem_span_nsmulAlgHom_image_of_bijOn_hopfKer_of_isPrincipalIdealRing37 below · depth 26 - Hopf kernels commute with flat base change
HopfAlgebra.hopfKer_baseChange_toSubmodule_eq_range_baseChange0 below · depth 27 - Kernel of a surjective Hopf quotient is generated by the augmentation ideal of the Hopf kernel
HopfAlgebra.ker_eq_map_hopfKer_inf_ker_counit_of_surjective36 below · depth 27 - Quotient of a p-divisible group by a closed subgroup
PDivisibleGroup.exists_pDivisibleGroup_bialgHom_injective_range_eq_hopfKer_of_surjective_of_comp_eq_of_isPrincipalIdealRing86 below · depth 28 - Transitions map Hopf kernels onto Hopf kernels, over a local PID
PDivisibleGroup.surjOn_transition_hopfKer_of_surjective_of_comp_eq_of_isPrincipalIdealRing36 below · depth 29 - Kernel of transition on Hopf kernel is p^v-torsion ideal
PDivisibleGroup.transition_apply_eq_zero_iff_mem_torsionIdeal_hopfKer_of_surjective_of_comp_eq_of_isPrincipalIdealRing63 below · depth 29 - Factorisation of bialgebra maps killed by a Hopf quotient
HopfAlgebra.exists_bialgHom_comp_eq_of_injective_baseChange_of_finrank_eq_of_comp_eq_counit5 below · depth 30 - Hopf–Galois descent for the Hopf kernel over a PID
HopfAlgebra.isHopfGalois_and_faithfullyFlat_and_finiteType_hopfKer_of_surjective_of_moduleFinite_baseChange_of_charZero59 below · depth 30 - Transitions are surjective on Hopf kernels of a quotient map
PDivisibleGroup.surjOn_transition_hopfKer_of_surjective_of_comp_eq35 below · depth 30 - Hopf kernels commute with base change to the residue field
HopfAlgebra.baseChange_toSubmodule_hopfKer_eq_toSubmodule_hopfKer_map_residueField_of_surjective5 below · depth 31 - Faithful flatness over a Hopf kernel is local on the base
HopfAlgebra.faithfullyFlat_hopfKer_of_forall_isLocalRing_faithfullyFlat_baseChange2 below · depth 31 - Hopf–Galois descent along a quotient with split finite part
HopfAlgebra.isHopfGalois_and_faithfullyFlat_and_finiteType_hopfKer_of_finitePartIdempotent46 below · depth 31 - Hopf–Galois property is local on the base along flat local covers
HopfAlgebra.isHopfGalois_of_forall_isLocalRing_isHopfGalois_baseChange_of_flat2 below · depth 31 - Hopf-kernel idempotent dominating the finite-part idempotent
HopfAlgebra.exists_isIdempotentElem_mem_hopfKer_mul_eq_of_finitePartIdempotent12 below · depth 32 - Faithful flatness of H over its Hopf kernel, local case
HopfAlgebra.faithfullyFlat_hopfKer_of_finitePartIdempotent37 below · depth 32 - Finite type of the Hopf kernel for a split quasi-finite pair
HopfAlgebra.finiteType_hopfKer_of_finitePartIdempotent0 below · depth 32 - Hopf–Galois descent for a split quasi-finite pair over a local PID
HopfAlgebra.isHopfGalois_of_finitePartIdempotent41 below · depth 32 - Faithful flatness of H over the invariants on the orbit corner
HopfAlgebra.faithfullyFlat_quotient_span_one_sub_orbitIdempotent_baseChange_of_finitePartIdempotent34 below · depth 33 - Faithful flatness over the generic corner B/(f)
HopfAlgebra.faithfullyFlat_quotient_span_orbitIdempotent_baseChange_of_finitePartIdempotent5 below · depth 33 - Hopf–Galois descends from the generic fibre under flatness
HopfAlgebra.isHopfGalois_of_isHopfGalois_baseChange_of_flat2 below · depth 33 - Faithful flatness over the Hopf kernel, finite flat case
HopfAlgebra.faithfullyFlat_hopfKer_of_surjective_of_isPrincipalIdealRing_of_moduleFinite3 below · depth 34 - Invariants descend onto the invariants of the finite part
HopfAlgebra.map_hopfKer_eq_hopfKer_of_finitePartIdempotent26 below · depth 34 - Restriction of the Hopf kernel to an idempotent sub-part
HopfAlgebra.map_hopfKer_eq_hopfKer_of_comul_mul_tmul_eq19 below · depth 35 - Hopf kernels are detected on the generic fibre
HopfAlgebra.mem_hopfKer_iff_one_tmul_mem_hopfKer_baseChange_fractionRing0 below · depth 35