You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cleanup prerequisite discovered while auditing #326.
Problem
Many matrix/interlacing declarations repeat the pair of assumptions
hfs : IsInterlacingSeq0Nonneg fs
hfs_real : ∀ f ∈ fs, f ≠ 0 → (f ≠ 0 ∧ f.Splits)
The weak predicate must remain weak: it is intentionally used for sparse
Branden-style test families, and changing its semantics would affect a broad
matrix/tactic API. The repeated real-rootedness side condition should instead
be bundled once.
Goal
Introduce a reusable predicate with the shape
defIsInterlacingSeq0NonnegRealRooted (fs : List R[X]) : Prop :=
IsInterlacingSeq0Nonneg fs ∧
∀ f ∈ fs, f ≠ 0 → (f ≠ 0 ∧ f.Splits)
and migrate repeated theorem signatures incrementally.
Initial API
sublist preservation.
conversion from IsInterlacingSeqNonneg.
filtering zero entries yields IsInterlacingSeqNonneg.
receiver lemmas exposing zero-aware interlacing, nonnegative coefficients,
and splitting of nonzero members.
Acceptance criteria
Do not strengthen or rename Prec0 or IsInterlacingSeq0Nonneg.
Reuse the existing sublist_of_realRooted_of_ne and filter_ne_zero_of_realRooted proofs rather than duplicating them.
Migrate at least one production consumer from separate assumptions to the
bundle.
Parent
Cleanup prerequisite discovered while auditing #326.
Problem
Many matrix/interlacing declarations repeat the pair of assumptions
The weak predicate must remain weak: it is intentionally used for sparse
Branden-style test families, and changing its semantics would affect a broad
matrix/tactic API. The repeated real-rootedness side condition should instead
be bundled once.
Goal
Introduce a reusable predicate with the shape
and migrate repeated theorem signatures incrementally.
Initial API
sublistpreservation.IsInterlacingSeqNonneg.IsInterlacingSeqNonneg.and splitting of nonzero members.
Acceptance criteria
Prec0orIsInterlacingSeq0Nonneg.sublist_of_realRooted_of_neandfilter_ne_zero_of_realRootedproofs rather than duplicating them.bundle.
deliberately retains local
Prec0semantics.