@@ -6,7 +6,7 @@ Authors: Robert Hawkins
66module
77
88public import Mathlib.RingTheory.Bialgebra.Quotient
9- public import Mathlib.RingTheory.HopfAlgebra.Basic
9+ public import Mathlib.RingTheory.HopfAlgebra.Convolution
1010
1111/-!
1212# Hopf algebra structure on quotients by Hopf ideals
@@ -27,7 +27,8 @@ by a Hopf ideal inherits a Hopf algebra structure.
2727
2828public section
2929
30- open Bialgebra Coalgebra HopfAlgebra LinearMap TensorProduct WithConv
30+ open Bialgebra Bialgebra.Quotient Coalgebra HopfAlgebra Ideal.Quotient LinearMap
31+ TensorProduct WithConv
3132
3233namespace HopfAlgebra
3334
@@ -41,48 +42,33 @@ intertwining the antipodes: in convolution-algebra terms, `S_B ⋆ id` and `id
4142along the coalgebra morphism `f` to the pushforwards of `S_A ⋆ id` and `id ⋆ S_A` along the
4243algebra morphism `f`, hence to the convolution unit; precomposition by a surjection is
4344injective. -/
44- abbrev ofSurjective (f : A →ₐc[R] B) (hf : Function.Surjective f)
45- (hS : antipode R ∘ₗ f.toLinearMap = f.toLinearMap ∘ₗ antipode R) : HopfAlgebra R B where
46- mul_antipode_rTensor_comul := by
47- have hf' : Function.Surjective f.toLinearMap := hf
48- rw [← LinearMap.cancel_right hf']
49- calc (mul' R B ∘ₗ (antipode R).rTensor B ∘ₗ comul) ∘ₗ f.toLinearMap
50- = (toConv (antipode R) * toConv .id : WithConv (B →ₗ[R] B)).ofConv ∘ₗ
51- f.toCoalgHom.toLinearMap := rfl
52- _ = (toConv (antipode R ∘ₗ f.toLinearMap) * toConv f.toLinearMap).ofConv := by
53- rw [convMul_comp_coalgHom_distrib]; rfl
54- _ = (toConv (f.toLinearMap ∘ₗ antipode R) * toConv f.toLinearMap).ofConv := by
55- rw [hS]
45+ noncomputable abbrev ofSurjective (f : A →ₐc[R] B) (hf : Function.Surjective f)
46+ (hS : antipode R ∘ₗ f.toLinearMap = f.toLinearMap ∘ₗ antipode R) : HopfAlgebra R B := by
47+ have h1 : (AlgHomClass.toAlgHom f).toLinearMap ∘ₗ (1 : WithConv (A →ₗ[R] A)).ofConv =
48+ (1 : WithConv (B →ₗ[R] B)).ofConv ∘ₗ f.toLinearMap := by
49+ ext a
50+ simp only [comp_apply, convOne_apply, ← LinearMap.congr_fun f.counit_comp a]
51+ exact AlgHomClass.commutes f _
52+ refine .ofConvInverse (antipode R) (ofConv_injective ?_) (ofConv_injective ?_) <;>
53+ rw [← LinearMap.cancel_right (show Function.Surjective f.toLinearMap from hf)]
54+ · calc (toConv (antipode R) * toConv .id : WithConv (B →ₗ[R] B)).ofConv ∘ₗ
55+ f.toCoalgHom.toLinearMap
56+ = (toConv (f.toLinearMap ∘ₗ antipode R) * toConv f.toLinearMap).ofConv := by
57+ rw [convMul_comp_coalgHom_distrib, hS]; rfl
5658 _ = (AlgHomClass.toAlgHom f).toLinearMap ∘ₗ
5759 (toConv (antipode R) * toConv .id : WithConv (A →ₗ[R] A)).ofConv := by
5860 rw [algHom_comp_convMul_distrib]; rfl
59- _ = f.toLinearMap ∘ₗ (mul' R A ∘ₗ (antipode R).rTensor A ∘ₗ comul) := rfl
60- _ = f.toLinearMap ∘ₗ (Algebra.linearMap R A ∘ₗ counit) := by
61- rw [mul_antipode_rTensor_comul]
62- _ = (Algebra.linearMap R B ∘ₗ counit) ∘ₗ f.toLinearMap := by
63- ext a
64- simp only [comp_apply, ← LinearMap.congr_fun f.counit_comp a]
65- exact AlgHomClass.commutes f _
66- mul_antipode_lTensor_comul := by
67- have hf' : Function.Surjective f.toLinearMap := hf
68- rw [← LinearMap.cancel_right hf']
69- calc (mul' R B ∘ₗ (antipode R).lTensor B ∘ₗ comul) ∘ₗ f.toLinearMap
70- = (toConv .id * toConv (antipode R) : WithConv (B →ₗ[R] B)).ofConv ∘ₗ
71- f.toCoalgHom.toLinearMap := rfl
72- _ = (toConv f.toLinearMap * toConv (antipode R ∘ₗ f.toLinearMap)).ofConv := by
73- rw [convMul_comp_coalgHom_distrib]; rfl
74- _ = (toConv f.toLinearMap * toConv (f.toLinearMap ∘ₗ antipode R)).ofConv := by
75- rw [hS]
61+ _ = (1 : WithConv (B →ₗ[R] B)).ofConv ∘ₗ f.toLinearMap := by
62+ rw [antipode_mul_id, h1]
63+ · calc (toConv .id * toConv (antipode R) : WithConv (B →ₗ[R] B)).ofConv ∘ₗ
64+ f.toCoalgHom.toLinearMap
65+ = (toConv f.toLinearMap * toConv (f.toLinearMap ∘ₗ antipode R)).ofConv := by
66+ rw [convMul_comp_coalgHom_distrib, hS]; rfl
7667 _ = (AlgHomClass.toAlgHom f).toLinearMap ∘ₗ
7768 (toConv .id * toConv (antipode R) : WithConv (A →ₗ[R] A)).ofConv := by
7869 rw [algHom_comp_convMul_distrib]; rfl
79- _ = f.toLinearMap ∘ₗ (mul' R A ∘ₗ (antipode R).lTensor A ∘ₗ comul) := rfl
80- _ = f.toLinearMap ∘ₗ (Algebra.linearMap R A ∘ₗ counit) := by
81- rw [mul_antipode_lTensor_comul]
82- _ = (Algebra.linearMap R B ∘ₗ counit) ∘ₗ f.toLinearMap := by
83- ext a
84- simp only [comp_apply, ← LinearMap.congr_fun f.counit_comp a]
85- exact AlgHomClass.commutes f _
70+ _ = (1 : WithConv (B →ₗ[R] B)).ofConv ∘ₗ f.toLinearMap := by
71+ rw [id_mul_antipode, h1]
8672
8773end ofSurjective
8874
@@ -125,8 +111,7 @@ end HopfAlgebraStruct
125111
126112variable [HopfAlgebra R A] (I : Ideal A) [I.IsTwoSided] [I.IsHopfIdeal R]
127113
128- instance : HopfAlgebra R (A ⧸ I) :=
129- .ofSurjective (Bialgebra.Quotient.mkBialgHom I) Ideal.Quotient.mk_surjective
130- (antipode_comp_mkₐ I)
114+ noncomputable instance : HopfAlgebra R (A ⧸ I) :=
115+ .ofSurjective (mkBialgHom I) mk_surjective (antipode_comp_mkₐ I)
131116
132117end HopfAlgebra.Quotient
0 commit comments