Zulip Chat Archive
Stream: Is there code for X?
Topic: Fin.sum le
Marcus Rossel (Dec 28 2025 at 11:51):
Is there a simpler way to prove this (or a more general one for types with monotonic addition)?
import Batteries.Data.Fin.Basic
example {n : Nat} (f : Fin n → Nat) (i : Fin n) : f i ≤ Fin.sum f := by
induction n
case zero => exact i.elim0
case succ m ih =>
rw [Fin.sum, Fin.foldr_succ]
cases i using Fin.cases
case zero => simp
case succ i =>
specialize ih (f ·.succ) i
grind [Fin.sum]
Yaël Dillies (Dec 28 2025 at 11:56):
Etienne Marion (Dec 28 2025 at 11:57):
Martin Dvořák (Dec 28 2025 at 12:34):
Yaël Dillies said:
Should we provide lemmas for situations where hf is implicit?
By implicit, I mean where the assumption is not needed because nonnegativity comes from the type.
Yaël Dillies (Dec 28 2025 at 12:41):
That's exactly the lemma Etienne mentioned
Last updated: Feb 28 2026 at 14:05 UTC