Skip to content

Commit f17a877

Browse files
committed
refactor(RingTheory/HopfAlgebra/Generators): LinearMap namespace, right-handed twins
1 parent 68ba6c0 commit f17a877

3 files changed

Lines changed: 39 additions & 20 deletions

File tree

Mathlib/RingTheory/Bialgebra/Primitive.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ This file defines primitive elements in a bialgebra, i.e. elements `a` such that
2323
* `primitiveSubmodule` is a `LieSubalgebra` with bracket `[a, b] = a * b - b * a`.
2424
(`IsPrimitiveElem.commutator` is stated with `a * b - b * a` rather than `⁅a, b⁆` to avoid
2525
importing Lie theory into this file.)
26-
* In characteristic 0 over a field, the primitive elements of a cocommutative connected
27-
bialgebra generate it as the universal enveloping of a Lie algebra.
26+
* (Cartier–Milnor–Moore) In characteristic 0 over a field, the primitive elements of a
27+
cocommutative connected bialgebra generate it as the universal enveloping of a Lie algebra.
2828
* Generalize to `(g, h)`-skew-primitive elements `Δ a = a ⊗ₜ g + h ⊗ₜ a` for group-like `g`, `h`
2929
over a plain coalgebra, of which primitivity is the `(1, 1)` case over a bialgebra.
3030
-/

Mathlib/RingTheory/HopfAlgebra/Generators.lean

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,33 +19,34 @@ antimultiplicative antipode data on generators.
1919
2020
## Main results
2121
22-
* `HopfAlgebra.convMul_eq_one_of_adjoin_eq_top_left` and
23-
`HopfAlgebra.convMul_eq_one_of_adjoin_eq_top_right`: a pointwise one-sided convolution inverse of
22+
* `LinearMap.convMul_eq_one_of_adjoin_eq_top_left` and
23+
`LinearMap.convMul_eq_one_of_adjoin_eq_top_right`: a pointwise one-sided convolution inverse of
2424
a multiplicative map on generators is a global one.
25-
* `HopfAlgebra.eq_antipode_of_convMul_id_eq_one` : a left convolution inverse of `id` is the
25+
* `HopfAlgebra.eq_antipode_of_convMul_id_eq_one` and
26+
`HopfAlgebra.eq_antipode_of_id_convMul_eq_one`: a one-sided convolution inverse of `id` is the
2627
antipode.
27-
* `HopfAlgebra.eq_antipode_of_adjoin_eq_top` : a left convolution inverse of `id` on a generating
28-
set is the antipode.
28+
* `HopfAlgebra.eq_antipode_of_adjoin_eq_top_left` and
29+
`HopfAlgebra.eq_antipode_of_adjoin_eq_top_right`: a one-sided convolution inverse of `id` on a
30+
generating set is the antipode.
2931
-/
3032

3133
public section
3234

33-
namespace HopfAlgebra
34-
3535
open Algebra Coalgebra LinearMap WithConv
3636

3737
variable {R A B : Type*} [CommSemiring R]
3838

39+
namespace LinearMap
40+
3941
section ExtensionPrinciple
4042

4143
/-! ### Extension principle from algebra generators -/
4244

4345
variable [Semiring A] [Bialgebra R A] [Semiring B] [Algebra R B]
4446
{g f : A →ₗ[R] B} {s : Set A}
4547

46-
/-- If a unital antimultiplicative map `g` and a unital multiplicative map `f` satisfy
47-
`toConv g * toConv f = 1` pointwise on an algebra-generating set, then they do so globally:
48-
a left convolution inverse on generators is a left convolution inverse. -/
48+
/-- If a unital antimultiplicative map `g` is a left convolution inverse of a unital
49+
multiplicative map `f` pointwise on an algebra-generating set, then `toConv g * toConv f = 1`. -/
4950
theorem convMul_eq_one_of_adjoin_eq_top_left
5051
(g_one : g 1 = 1) (g_mul : ∀ x y, g (x * y) = g y * g x)
5152
(f_one : f 1 = 1) (f_mul : ∀ x y, f (x * y) = f x * f y)
@@ -54,7 +55,7 @@ theorem convMul_eq_one_of_adjoin_eq_top_left
5455
toConv g * toConv f = 1 := by
5556
ext x; refine adjoin_le
5657
(S := (eqLocus (toConv g * toConv f).ofConv (ofConv 1)).toSubalgebra ?_ fun a b ha hb => ?_)
57-
g_convMul_f (adjoin_eq_topmem_top : x ∈ adjoin R s)
58+
g_convMul_f (adjoin_eq_top.ge mem_top)
5859
· simp [g_one, f_one, TensorProduct.one_def]
5960
let 𝓡a := ℛ R a; let 𝓡b := ℛ R b
6061
simp only [mem_eqLocus, 𝓡a.convMul_apply, 𝓡b.convMul_apply, convOne_apply] at ha hb ⊢
@@ -66,8 +67,8 @@ theorem convMul_eq_one_of_adjoin_eq_top_left
6667
rw [Finset.sum_comm]; simp_rw [← Finset.sum_mul, ← Finset.mul_sum, ha, ← commutes]
6768
simp_rw [mul_assoc, ← Finset.mul_sum, hb, ← map_mul, ← Bialgebra.counit_mul]
6869

69-
/-- Analogue of `convMul_eq_one_of_adjoin_eq_top_left` for `toConv f * toConv g = 1`:
70-
a right convolution inverse on generators is a right convolution inverse. -/
70+
/-- If a unital antimultiplicative map `g` is a right convolution inverse of a unital
71+
multiplicative map `f` pointwise on an algebra-generating set, then `toConv f * toConv g = 1`. -/
7172
theorem convMul_eq_one_of_adjoin_eq_top_right
7273
(g_one : g 1 = 1) (g_mul : ∀ x y, g (x * y) = g y * g x)
7374
(f_one : f 1 = 1) (f_mul : ∀ x y, f (x * y) = f x * f y)
@@ -76,7 +77,7 @@ theorem convMul_eq_one_of_adjoin_eq_top_right
7677
toConv f * toConv g = 1 := by
7778
ext x; refine adjoin_le
7879
(S := (eqLocus (toConv f * toConv g).ofConv (ofConv 1)).toSubalgebra ?_ fun a b ha hb => ?_)
79-
f_convMul_g (adjoin_eq_topmem_top : x ∈ adjoin R s)
80+
f_convMul_g (adjoin_eq_top.ge mem_top)
8081
· simp [g_one, f_one, TensorProduct.one_def]
8182
let 𝓡a := ℛ R a; let 𝓡b := ℛ R b
8283
simp only [mem_eqLocus, 𝓡a.convMul_apply, 𝓡b.convMul_apply, convOne_apply] at ha hb ⊢
@@ -91,6 +92,10 @@ theorem convMul_eq_one_of_adjoin_eq_top_right
9192

9293
end ExtensionPrinciple
9394

95+
end LinearMap
96+
97+
namespace HopfAlgebra
98+
9499
section Construction
95100
variable [Semiring A] [Bialgebra R A] {S₀ : A →ₗ[R] A} {s : Set A}
96101

@@ -121,10 +126,14 @@ theorem eq_antipode_of_convMul_id_eq_one (h : toConv S₀ * toConv LinearMap.id
121126
S₀ = antipode R :=
122127
toConv_injective (left_inv_eq_right_inv h id_mul_antipode)
123128

124-
variable (S₀) in
129+
/-- A right convolution inverse of the identity is the antipode. -/
130+
theorem eq_antipode_of_id_convMul_eq_one (h : toConv LinearMap.id * toConv S₀ = 1) :
131+
S₀ = antipode R :=
132+
toConv_injective (left_inv_eq_right_inv antipode_mul_id h).symm
133+
125134
/-- A unital antimultiplicative map that is a left convolution inverse of the identity on an
126135
algebra-generating set is the antipode. -/
127-
theorem eq_antipode_of_adjoin_eq_top (S₀_one : S₀ 1 = 1)
136+
theorem eq_antipode_of_adjoin_eq_top_left (S₀_one : S₀ 1 = 1)
128137
(S₀_mul : ∀ x y, S₀ (x * y) = S₀ y * S₀ x) (adjoin_eq_top : adjoin R s = ⊤)
129138
(S₀_convMul_id : ∀ p ∈ s,
130139
(toConv S₀ * toConv (.id : A →ₗ[R] A)) p = (1 : WithConv (A →ₗ[R] A)) p) :
@@ -133,6 +142,17 @@ theorem eq_antipode_of_adjoin_eq_top (S₀_one : S₀ 1 = 1)
133142
(convMul_eq_one_of_adjoin_eq_top_left S₀_one S₀_mul rfl (fun _ _ => rfl)
134143
adjoin_eq_top S₀_convMul_id)
135144

145+
/-- A unital antimultiplicative map that is a right convolution inverse of the identity on an
146+
algebra-generating set is the antipode. -/
147+
theorem eq_antipode_of_adjoin_eq_top_right (S₀_one : S₀ 1 = 1)
148+
(S₀_mul : ∀ x y, S₀ (x * y) = S₀ y * S₀ x) (adjoin_eq_top : adjoin R s = ⊤)
149+
(id_convMul_S₀ : ∀ p ∈ s,
150+
(toConv (.id : A →ₗ[R] A) * toConv S₀) p = (1 : WithConv (A →ₗ[R] A)) p) :
151+
S₀ = antipode R :=
152+
eq_antipode_of_id_convMul_eq_one
153+
(convMul_eq_one_of_adjoin_eq_top_right S₀_one S₀_mul rfl (fun _ _ => rfl)
154+
adjoin_eq_top id_convMul_S₀)
155+
136156
end Uniqueness
137157

138158
end HopfAlgebra

Mathlib/RingTheory/HopfAlgebra/Primitive.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ theorem eq_antipode_of_primitives [Ring A] [HopfAlgebra R A] (S : A →ₐ[R] A
6161
(adjoin_eq_top : Algebra.adjoin R s = ⊤) (prim : ∀ p ∈ s, IsPrimitiveElem R p)
6262
(S_apply : ∀ p ∈ s, S p = op (-p)) :
6363
(opLinearEquiv R).symm.toLinearMap ∘ₗ S.toLinearMap = antipode R :=
64-
eq_antipode_of_adjoin_eq_top ((opLinearEquiv R).symm.toLinearMap ∘ₗ S.toLinearMap)
65-
(by simp) (fun _ _ => by simp) adjoin_eq_top
64+
eq_antipode_of_adjoin_eq_top_left (by simp) (fun _ _ => by simp) adjoin_eq_top
6665
(fun p hp => by simp [convMul_apply, prim p hp, S_apply p hp])
6766

6867
end HopfAlgebra

0 commit comments

Comments
 (0)