∀ {ι : Type u_1} {M : Type u_2} {N : Type u_3} [inst : Monoid M] [inst_1 : Monoid N] (l : List ι) {r : M → N → Prop}
  {f : ι → M} {g : ι → N},
  r 1 1 → (∀ ⦃i : ι⦄ ⦃a : M⦄ ⦃b : N⦄, r a b → r (f i * a) (g i * b)) → r (List.map f l).prod (List.map g l).prod