@@ -5,7 +5,7 @@ Authors: Robert Hawkins
55-/
66module
77
8- public import Mathlib.RingTheory.Bialgebra.Hom
8+ public import Mathlib.RingTheory.Bialgebra.Equiv
99
1010/-!
1111# Primitive elements in a bialgebra
@@ -21,8 +21,12 @@ This file defines primitive elements in a bialgebra, i.e. elements `a` such that
2121 ## TODO
2222
2323* `primitiveSubmodule` is a `LieSubalgebra` with bracket `[a, b] = a * b - b * a`.
24+ (`IsPrimitiveElem.commutator` is stated with `a * b - b * a` rather than `⁅a, b⁆` to avoid
25+ importing Lie theory into this file.)
2426* In characteristic 0 over a field, the primitive elements of a cocommutative connected
2527 bialgebra generate it as the universal enveloping of a Lie algebra.
28+ * Generalize to `(g, h)`-skew-primitive elements `Δ a = a ⊗ₜ g + h ⊗ₜ a` for group-like `g`, `h`
29+ over a plain coalgebra, of which primitivity is the `(1, 1)` case over a bialgebra.
2630 -/
2731
2832public section
@@ -35,7 +39,8 @@ section Semiring
3539variable [CommSemiring R] [Semiring A] [Bialgebra R A] [Semiring B] [Bialgebra R B] {a b : A}
3640
3741variable (R) in
38- /-- An element `a` of a bialgebra is *primitive* if `Δ a = a ⊗ₜ 1 + 1 ⊗ₜ a` and `ε a = 0`. -/
42+ /-- An element `a` of a bialgebra is *primitive* if `Δ a = a ⊗ₜ 1 + 1 ⊗ₜ a` and `ε a = 0`,
43+ where `ε` and `Δ` are the counit and comultiplication respectively. -/
3944@[mk_iff]
4045structure IsPrimitiveElem (a : A) : Prop where
4146 /-- A primitive element `a` satisfies `ε(a) = 0`. -/
@@ -48,6 +53,9 @@ attribute [simp] IsPrimitiveElem.counit_eq_zero IsPrimitiveElem.comul_eq_tmul_ad
4853/-- In a bialgebra, `0` is a primitive element. -/
4954lemma IsPrimitiveElem.zero : IsPrimitiveElem R (0 : A) := by simp [isPrimitiveElem_iff]
5055
56+ lemma IsPrimitiveElem.ne_one [Nontrivial R] (ha : IsPrimitiveElem R a) : a ≠ 1 := by
57+ rintro rfl; simpa using ha.counit_eq_zero
58+
5159/-- Primitive elements in a bialgebra are stable under addition. -/
5260lemma IsPrimitiveElem.add (ha : IsPrimitiveElem R a) (hb : IsPrimitiveElem R b) :
5361 IsPrimitiveElem R (a + b) :=
@@ -62,6 +70,12 @@ lemma IsPrimitiveElem.map [FunLike F A B] [BialgHomClass F R A B] (f : F)
6270 (ha : IsPrimitiveElem R a) : IsPrimitiveElem R (f a) :=
6371 ⟨by simp [ha], by simp [ha, ← CoalgHomClass.map_comp_comul_apply]⟩
6472
73+ /-- A bialgebra isomorphism preserves primitive elements. -/
74+ @[simp] lemma isPrimitiveElem_map_equiv [EquivLike F A B] [BialgEquivClass F R A B] (f : F) :
75+ IsPrimitiveElem R (f a) ↔ IsPrimitiveElem R a where
76+ mp ha := (BialgEquivClass.toBialgEquiv f).symm_apply_apply a ▸ ha.map _
77+ mpr := .map f
78+
6579variable (R A) in
6680/-- The primitive elements form a submodule. -/
6781def primitiveSubmodule : Submodule R A where
0 commit comments