theorem
L35 ↗prod_option_sigma
JacobianVarieties.Picard.Proofs.PointIdealBaseChange.SecIdealChange.prod_option_sigma
Source context 5 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace JacobianVarieties.Picard.Proofs.PointIdealBaseChange
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace SecIdealChangeLean source · full declaration
theorem prod_option_sigma {M : Type*} [CommMonoid M] {ι : Type} [Fintype ι]
(e : ι → ℕ) (x : M) (y : ι → M) :
∏ j : Option (Σ i : ι, Fin (e i)), Option.elim j x (fun s => y s.1) = x * ∏ i, y i ^ (e i) := by
classical
rw [Fintype.prod_option]
congr 1
simp only [Option.elim]
rw [Fintype.prod_sigma]
refine Fintype.prod_congr _ _ fun i => ?_
change (∏ _ : Fin (e i), y i) = y i ^ e i
rw [Finset.prod_const, Finset.card_univ, Fintype.card_fin]