Zulip Chat Archive

Stream: Is there code for X?

Topic: Monotone Finsupp.prod


Snir Broshi (Jan 28 2026 at 22:38):

f₁ ≤ f₂ → f₁.prod g ≤ f₂.prod g and f₁ < f₂ → f₁.prod g < f₂.prod g aren't always true, but I think they're true given some trivial restrictions:

import Mathlib

theorem Finsupp.prod_monotone {α M N : Type*} [Zero M] [Preorder M] [CommMonoid N] [Preorder N]
    {f₁ f₂ : α →₀ M} {g : α  M  N} (h :  a  f₂.support, MonotoneOn (g a) {0})
    (h' :  a  f₂.support,  x, x  x * (g a (f₂ a))) : f₁  f₂  f₁.prod g  f₂.prod g := by
  sorry

theorem Finsupp.prod_strictMono {α M N : Type*} [Zero M] [Preorder M] [Zero N] [CommMonoid N]
    [Preorder N] {f₁ f₂ : α →₀ M} {g : α  M  N} (h :  a  f₂.support, StrictMonoOn (g a) {0})
    (h' :  a  f₂.support,  x  ({0} : Set N), x < x * (g a (f₂ a))) :
    f₁ < f₂  f₁.prod g < f₂.prod g := by
  sorry

Does this exist in some form?
Also, are there parts in the statement that have existing defs? e.g. ∀ x, x ≤ x * c reminds me of IsRightRegular c

Snir Broshi (Jan 28 2026 at 22:43):

The motivation is from the case where f₁ and f₂ have only primes in their support, and g = (· ^ ·), so this is a statement relating prime factorizations


Last updated: Feb 28 2026 at 14:05 UTC