Skip to content

Commit fb784ab

Browse files
committed
feat(RingTheory/Bialgebra/Primitive): ne_one, map_equiv, docstring polish
1 parent 78265c1 commit fb784ab

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

Mathlib/RingTheory/Bialgebra/Primitive.lean

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Authors: Robert Hawkins
55
-/
66
module
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

2832
public section
@@ -35,7 +39,8 @@ section Semiring
3539
variable [CommSemiring R] [Semiring A] [Bialgebra R A] [Semiring B] [Bialgebra R B] {a b : A}
3640

3741
variable (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]
4045
structure 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. -/
4954
lemma 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. -/
5260
lemma 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+
6579
variable (R A) in
6680
/-- The primitive elements form a submodule. -/
6781
def primitiveSubmodule : Submodule R A where

0 commit comments

Comments
 (0)