Skip to content

Commit 0318397

Browse files
kim-emclaude
andcommitted
chore: address review comments on antipode_mul proof
Standardize docstring capitalization, add backticks to math in comments, remove redundant explicit goal comments, and simplify tactic calls. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent be295dc commit 0318397

1 file changed

Lines changed: 18 additions & 22 deletions

File tree

Mathlib/RingTheory/HopfAlgebra/Basic.lean

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ In this file we define `HopfAlgebra`, and provide instances for:
1818
## Main definitions
1919
2020
* `HopfAlgebra R A` : the Hopf algebra structure on an `R`-bialgebra `A`.
21-
* `HopfAlgebra.antipode` : The `R`-linear map `A →ₗ[R] A`.
21+
* `HopfAlgebra.antipode` : the `R`-linear map `A →ₗ[R] A`.
2222
2323
## Main results
2424
25-
* `HopfAlgebra.antipode_one` : The antipode of the unit is the unit.
26-
* `HopfAlgebra.antipode_mul` : The antipode is an antihomomorphism: `S(ab) = S(b)S(a)`.
25+
* `HopfAlgebra.antipode_one` : the antipode of the unit is the unit.
26+
* `HopfAlgebra.antipode_mul` : the antipode is an antihomomorphism: `S(ab) = S(b)S(a)`.
2727
2828
## TODO
2929
@@ -137,39 +137,36 @@ open scoped ConvolutionProduct TensorProduct
137137
/-- The antipode reverses multiplication: `S(ab) = S(b)S(a)`. -/
138138
theorem antipode_mul (a b : A) :
139139
antipode R (a * b) = antipode R b * antipode R a := by
140-
-- We show that the linear maps S ∘ μ and μ ∘ (S ⊗ S) ∘ comm are equal,
141-
-- by proving they are both convolution inverses of μ.
140+
-- We show that the linear maps `S ∘ μ` and `μ ∘ (S ⊗ S) ∘ comm` are equal,
141+
-- by proving they are both convolution inverses of `μ`.
142142
suffices h : antipode R ∘ₗ LinearMap.mul' R A =
143143
LinearMap.mul' R A ∘ₗ TensorProduct.map (antipode R) (antipode R) ∘ₗ
144144
TensorProduct.comm R A A by
145145
exact congr(($h) (a ⊗ₜ b))
146146
apply left_inv_eq_right_inv (a := LinearMap.mul' R A)
147-
· -- Left inverse: (S ∘ μ) * μ = 1
147+
· -- Left inverse: `(S ∘ μ) * μ = 1`.
148148
refine TensorProduct.ext' fun x y => ?_
149-
-- Unfold convolution product: (f * g)(x ⊗ y) = μ(f ⊗ g)(Δ(x ⊗ y))
149+
-- Unfold convolution product: `(f * g)(x ⊗ y) = μ(f ⊗ g)(Δ(x ⊗ y))`.
150150
simp only [LinearMap.convMul_apply, LinearMap.convOne_apply]
151-
-- The coalgebra on A ⊗ A: Δ(x ⊗ y) = σ (Δx ⊗ Δy) where σ = tensorTensorTensorComm
151+
-- The coalgebra on `A ⊗ A: Δ(x ⊗ y) = σ (Δx ⊗ Δy)` where `σ = tensorTensorTensorComm`.
152152
rw [TensorProduct.comul_tmul]
153-
-- Use Sweedler representations for x and y
153+
-- Use Sweedler representations for `x` and `y`.
154154
let ℛx := ℛ R x; let ℛy := ℛ R y
155155
conv_lhs => rw [← ℛx.eq, ← ℛy.eq]
156156
simp only [TensorProduct.sum_tmul, TensorProduct.tmul_sum, map_sum,
157157
TensorProduct.AlgebraTensorModule.tensorTensorTensorComm_tmul, TensorProduct.map_tmul,
158158
LinearMap.mul'_apply, LinearMap.comp_apply]
159159
rw [Finset.sum_comm]
160-
-- Goal: ∑ S(x₁y₁) * (x₂y₂) = algebraMap (ε(x)ε(y))
161-
-- The counit on A ⊗ A: ε(x ⊗ y) = ε(y) • ε(x) = ε(x)ε(y) since R is commutative
160+
-- The counit on `A ⊗ A`: `ε(x ⊗ y) = ε(y) • ε(x) = ε(x)ε(y)` since `R` is commutative.
162161
simp only [TensorProduct.counit_tmul, Algebra.algebraMap_eq_smul_one]
163-
-- Use the bialgebra comultiplication axiom: Δ(xy) = Δ(x)Δ(y)
162+
-- Use the bialgebra comultiplication axiom: `Δ(xy) = Δ(x)Δ(y)`.
164163
have key := mul_antipode_rTensor_comul_apply (R := R) (x * y)
165164
rw [Bialgebra.comul_mul, ← ℛx.eq, ← ℛy.eq] at key
166165
simp only [Finset.sum_mul, Finset.mul_sum, Algebra.TensorProduct.tmul_mul_tmul,
167166
map_sum, LinearMap.rTensor_tmul, LinearMap.mul'_apply, Bialgebra.counit_mul] at key
168167
rw [Finset.sum_comm] at key
169-
simp only [Algebra.algebraMap_eq_smul_one] at key
170-
rw [mul_comm (counit (R := R) x) (counit y)] at key
171-
exact key
172-
· -- Right inverse: μ * (μ ∘ (S ⊗ S) ∘ comm) = 1
168+
simpa [Algebra.algebraMap_eq_smul_one, mul_comm (counit x) (counit y)] using key
169+
· -- Right inverse: `μ * (μ ∘ (S ⊗ S) ∘ comm) = 1`.
173170
refine TensorProduct.ext' fun x y => ?_
174171
simp only [LinearMap.convMul_apply, LinearMap.convOne_apply]
175172
rw [TensorProduct.comul_tmul]
@@ -180,22 +177,21 @@ theorem antipode_mul (a b : A) :
180177
LinearMap.mul'_apply, LinearMap.comp_apply]
181178
rw [Finset.sum_comm]
182179
simp only [TensorProduct.counit_tmul, Algebra.algebraMap_eq_smul_one]
183-
-- Goal: ∑ (x₁y₁) * S(y₂)S(x₂) = ε(x)ε(y) • 1
184-
-- Rearrange the sum using antipode axioms
180+
-- Rearrange the sum using antipode axioms.
185181
calc ∑ i ∈ ℛx.index, ∑ j ∈ ℛy.index,
186182
(ℛx.left i * ℛy.left j) * (antipode R (ℛy.right j) * antipode R (ℛx.right i))
187183
_ = ∑ i ∈ ℛx.index, ∑ j ∈ ℛy.index,
188184
ℛx.left i * (ℛy.left j * antipode R (ℛy.right j) * antipode R (ℛx.right i)) := by
189-
simp only [mul_assoc]
185+
simp [mul_assoc]
190186
_ = ∑ i ∈ ℛx.index, ℛx.left i *
191187
((∑ j ∈ ℛy.index, ℛy.left j * antipode R (ℛy.right j)) * antipode R (ℛx.right i)) := by
192-
simp only [Finset.sum_mul, Finset.mul_sum]
188+
simp [Finset.sum_mul, Finset.mul_sum]
193189
_ = ∑ i ∈ ℛx.index, ℛx.left i *
194-
(counit (R := R) y • (1 : A) * antipode R (ℛx.right i)) := by
190+
(counit y • 1 * antipode R (ℛx.right i)) := by
195191
rw [sum_mul_antipode_eq_smul ℛy]
196192
_ = ∑ i ∈ ℛx.index, ℛx.left i *
197193
(algebraMap R A (counit y) * antipode R (ℛx.right i)) := by
198-
simp only [Algebra.smul_def, mul_one]
194+
simp [Algebra.smul_def]
199195
_ = ∑ i ∈ ℛx.index, algebraMap R A (counit y) * (ℛx.left i * antipode R (ℛx.right i)) := by
200196
congr 1; ext i; rw [← mul_assoc, ← mul_assoc, Algebra.commutes]
201197
_ = algebraMap R A (counit y) * ∑ i ∈ ℛx.index, ℛx.left i * antipode R (ℛx.right i) := by

0 commit comments

Comments
 (0)