Results about mapping big operators across ring equivalences #
theorem
RingEquiv.map_list_sum
{R : Type u_2}
{S : Type u_3}
[NonAssocSemiring R]
[NonAssocSemiring S]
(f : R ≃+* S)
(l : List R)
:
theorem
RingEquiv.unop_map_list_prod
{R : Type u_2}
{S : Type u_3}
[Semiring R]
[Semiring S]
(f : R ≃+* Sᵐᵒᵖ)
(l : List R)
:
MulOpposite.unop (f (List.prod l)) = List.prod (List.reverse (List.map (MulOpposite.unop ∘ ⇑f) l))
An isomorphism into the opposite ring acts on the product by acting on the reversed elements
theorem
RingEquiv.map_multiset_prod
{R : Type u_2}
{S : Type u_3}
[CommSemiring R]
[CommSemiring S]
(f : R ≃+* S)
(s : Multiset R)
:
f (Multiset.prod s) = Multiset.prod (Multiset.map (⇑f) s)
theorem
RingEquiv.map_multiset_sum
{R : Type u_2}
{S : Type u_3}
[NonAssocSemiring R]
[NonAssocSemiring S]
(f : R ≃+* S)
(s : Multiset R)
:
f (Multiset.sum s) = Multiset.sum (Multiset.map (⇑f) s)
theorem
RingEquiv.map_prod
{α : Type u_1}
{R : Type u_2}
{S : Type u_3}
[CommSemiring R]
[CommSemiring S]
(g : R ≃+* S)
(f : α → R)
(s : Finset α)
:
g (Finset.prod s fun (x : α) => f x) = Finset.prod s fun (x : α) => g (f x)
theorem
RingEquiv.map_sum
{α : Type u_1}
{R : Type u_2}
{S : Type u_3}
[NonAssocSemiring R]
[NonAssocSemiring S]
(g : R ≃+* S)
(f : α → R)
(s : Finset α)
:
g (Finset.sum s fun (x : α) => f x) = Finset.sum s fun (x : α) => g (f x)