Skip to content

Commit 032b054

Browse files
committed
refactor(RingTheory/HopfAlgebra): ofConvInverse constructor (leanprover-community#39785)
The antipode of a Hopf algebra is [generally](https://arxiv.org/pdf/1409.8356) the two-sided inverse of the identity in the convolution algebra `End(A)`. When `A` is commutative, algebra homs are closed under convolution and this lifts to AlgHom equality. See [this comment](leanprover-community#31898 (comment)) on leanprover-community#31898.
1 parent 0c94ba2 commit 032b054

2 files changed

Lines changed: 41 additions & 20 deletions

File tree

Mathlib/RingTheory/HopfAlgebra/Basic.lean

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ In this file we define `HopfAlgebra`, and provide instances for:
1919
2020
* `HopfAlgebra R A` : the Hopf algebra structure on an `R`-bialgebra `A`.
2121
* `HopfAlgebra.antipode` : the `R`-linear map `A →ₗ[R] A`.
22+
* `HopfAlgebra.ofConvInverse` : construct a Hopf algebra from a two-sided convolution inverse
23+
of the identity.
24+
* `HopfAlgebra.ofAlgHom` : the same for commutative `A`, with `AlgHom` hypotheses.
2225
2326
## Main results
2427
@@ -230,3 +233,40 @@ instance toHopfAlgebra : HopfAlgebra R R where
230233
theorem antipode_eq_id : antipode R (A := R) = .id := rfl
231234

232235
end CommSemiring
236+
237+
namespace HopfAlgebra
238+
239+
variable {R A : Type*}
240+
241+
open Coalgebra WithConv LinearMap
242+
243+
/-- Upgrade a bialgebra to a Hopf algebra by specifying a convolution inverse of the identity. -/
244+
noncomputable abbrev ofConvInverse [CommSemiring R] [Semiring A] [Bialgebra R A]
245+
(antipode : A →ₗ[R] A)
246+
(antipode_convMul_id : toConv antipode * toConv LinearMap.id = 1)
247+
(id_convMul_antipode : toConv LinearMap.id * toConv antipode = 1) :
248+
HopfAlgebra R A where
249+
antipode := antipode
250+
mul_antipode_rTensor_comul := by simpa using! congr(($antipode_convMul_id).ofConv)
251+
mul_antipode_lTensor_comul := by simpa using! congr(($id_convMul_antipode).ofConv)
252+
253+
/-- Upgrade a commutative bialgebra to a Hopf algebra by specifying the antipode `A →ₐ[R] A`
254+
with appropriate conditions. -/
255+
noncomputable abbrev ofAlgHom [CommSemiring R] [CommSemiring A] [Bialgebra R A]
256+
(antipode : A →ₐ[R] A)
257+
(mul_antipode_rTensor_comul :
258+
((Algebra.TensorProduct.lift antipode (.id R A) fun _ ↦ Commute.all _).comp
259+
(Bialgebra.comulAlgHom R A)) = (Algebra.ofId R A).comp (Bialgebra.counitAlgHom R A))
260+
(mul_antipode_lTensor_comul :
261+
(Algebra.TensorProduct.lift (.id R A) antipode fun _ _ ↦ Commute.all _ _).comp
262+
(Bialgebra.comulAlgHom R A) = (Algebra.ofId R A).comp (Bialgebra.counitAlgHom R A)) :
263+
HopfAlgebra R A :=
264+
ofConvInverse antipode.toLinearMap
265+
(WithConv.ext <| by
266+
simpa [← Algebra.TensorProduct.lmul'_comp_map]
267+
using! congr(($mul_antipode_rTensor_comul).toLinearMap))
268+
(WithConv.ext <| by
269+
simpa [← Algebra.TensorProduct.lmul'_comp_map]
270+
using! congr(($mul_antipode_lTensor_comul).toLinearMap))
271+
272+
end HopfAlgebra

Mathlib/RingTheory/HopfAlgebra/TensorProduct.lean

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,7 @@ We define the Hopf algebra instance on the tensor product of two Hopf algebras.
1717

1818
@[expose] public section
1919

20-
open Coalgebra TensorProduct HopfAlgebra
21-
22-
/-- Upgrade a bialgebra to a Hopf algebra by specifying the antipode as an algebra map with
23-
appropriate conditions. -/
24-
noncomputable abbrev HopfAlgebra.ofAlgHom {R A : Type*} [CommSemiring R] [CommSemiring A]
25-
[Bialgebra R A] (antipode : A →ₐ[R] A)
26-
(mul_antipode_rTensor_comul :
27-
((Algebra.TensorProduct.lift antipode (.id R A) fun _ ↦ .all _).comp
28-
(Bialgebra.comulAlgHom R A)) = (Algebra.ofId R A).comp (Bialgebra.counitAlgHom R A))
29-
(mul_antipode_lTensor_comul :
30-
(Algebra.TensorProduct.lift (.id R A) antipode fun _ _ ↦ .all _ _).comp
31-
(Bialgebra.comulAlgHom R A) = (Algebra.ofId R A).comp (Bialgebra.counitAlgHom R A)) :
32-
HopfAlgebra R A where
33-
antipode := antipode
34-
mul_antipode_rTensor_comul := by
35-
rw [← Algebra.TensorProduct.lmul'_comp_map] at mul_antipode_rTensor_comul
36-
exact congr(($mul_antipode_rTensor_comul).toLinearMap)
37-
mul_antipode_lTensor_comul := by
38-
rw [← Algebra.TensorProduct.lmul'_comp_map] at mul_antipode_lTensor_comul
39-
exact congr(($mul_antipode_lTensor_comul).toLinearMap)
20+
open Coalgebra HopfAlgebra
4021

4122
namespace TensorProduct
4223

0 commit comments

Comments
 (0)