no goals
ι : Type u_2
R : Type u_3
α : Type u_1
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
⊢ dProd l fι fA = prod (map fA l)
match l with
| [] =>
  rw [List.dProd_nil, List.map_nil, List.prod_nil]
  rfl
| head::tail =>
  rw [List.dProd_cons, List.map_cons, List.prod_cons, List.dProd_monoid tail _ _]
  rfl
ι : Type u_2
R : Type u_3
α : Type u_1
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
⊢ GradedMonoid.GOne.one = 1
ι : Type u_2
R : Type u_3
α : Type u_1
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
⊢ dProd [] fι fA = prod (map fA [])
rw [List.dProd_nil, List.map_nil, List.prod_nil]
no goals
ι : Type u_2
R : Type u_3
α : Type u_1
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
⊢ GradedMonoid.GOne.one = 1
rfl
ι : Type u_2
R : Type u_3
α : Type u_1
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
head : α
tail : List α
⊢ GradedMonoid.GMul.mul (fA head) (prod (map fA tail)) = fA head * prod (map fA tail)
ι : Type u_2
R : Type u_3
α : Type u_1
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
head : α
tail : List α
⊢ dProd (head :: tail) fι fA = prod (map fA (head :: tail))
rw [List.dProd_cons, List.map_cons, List.prod_cons, List.dProd_monoid tail _ _]
no goals
ι : Type u_2
R : Type u_3
α : Type u_1
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
head : α
tail : List α
⊢ GradedMonoid.GMul.mul (fA head) (prod (map fA tail)) = fA head * prod (map fA tail)
rfl