Lean4
/-- `DFinsupp.mapRange.addMonoidHom` as an `AddEquiv`. -/
@[simps apply]
def addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃+ Π₀ i, β₂ i :=
{
mapRange.addMonoidHom fun i =>
(e i).toAddMonoidHom with
toFun := mapRange (fun i x => e i x) fun i => (e i).map_zero
invFun := mapRange (fun i x => (e i).symm x) fun i => (e i).symm.map_zero
left_inv := fun x => by
rw [← mapRange_comp] <;>
· simp_rw [AddEquiv.symm_comp_self]
simp
right_inv := fun x => by
rw [← mapRange_comp] <;>
· simp_rw [AddEquiv.self_comp_symm]
simp }