Skip to content

Define the source-faithful Hoster--Stump interlacing-sequence predicate #326

Description

@PerAlexandersson

Source

Hoster--Stump, arXiv:2508.15538, Section 2 and Lemma 2.3.

Problem

The current IsInterlacingSeq0Nonneg predicate is not the paper's notion of an
interlacing sequence. It records pairwise Prec0 and nonnegative coefficients,
but it does not require each nonzero member to split over R. Since Prec0 f g
is automatic when either entry is zero, a zero can hide a non-real-rooted
neighbor.

This makes the current statement interfaces in #316, #317, #318, and #319
false. For example, b = 1 + X + X^2 has nonnegative coefficients but is not
real-rooted:

  • [b, 0] breaks the lower-partial-sum target.
  • [0, b] breaks the upper-partial-sum target.
  • [0, b, 0] with width 1 breaks the moving-window target.
  • [b] breaks the shifted-split target.

The paper also declares any two degree-at-most-one polynomials to interlace,
which local Prec does not implement in every orientation.

Goal

Introduce a source-faithful Hoster--Stump sequence predicate, or an equivalent
API, that separately records:

  • nonnegative coefficients for every member;
  • every member is zero or is nonzero and splits over R;
  • every earlier/later pair obeys the paper's zero and degree-at-most-one
    conventions, and otherwise the correctly oriented local Prec.

Then restate #316--#319 using this predicate.

Acceptance criteria

  • Cite Section 2 and Lemma 2.3 next to the definitions.
  • Preserve the exact current list formulas and ordering.
  • Document that Lemma 2.3(4)'s printed tuple endpoint is off by one; the formula
    gives n - ell windows of width ell + 1, matching the current Lean list
    length.
  • Decide explicitly whether empty-list behavior is a harmless extension or
    whether source-literal statements require List.Nonempty.
  • Add checked counterexamples or otherwise retire the four false old
    proposition interfaces.
  • Do not use the false old interfaces as assumptions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions