Core definitions + the count numerator (Mathlib) #
Positions are ZMod N (N = d*m); level i = i.val / m, fiber i = i.val % m. A (d−1)-subset
is level-canonical iff #{i ∈ S : level i ≤ j} ≤ j for all j < d.
Proved here (sorry-free): the count numerator #{(d−1)-subsets of Z_N} = C(N, d−1), via
Mathlib's Fintype.card_finset_len + ZMod.card.
@[implicit_reducible]
instance
CriticalPortraits.instDecidableLevelCanonical
(d m : ℕ)
(S : Finset (ZMod (d * m)))
:
Decidable (LevelCanonical d m S)