Source
Karlin, Total Positivity, Vol. I, Chapter V, §1, Theorem 1.3 and Propositions 1.1–1.2 (printed pp. 220–222).
The source theorem states: if U is an n × m matrix of rank r and is sign-consistent of order r (SC_r), then S⁻(Uc) ≤ r - 1 for every c. If U is strictly sign-consistent of order r (SSC_r) and c ≠ 0, then the source also gives the corresponding S⁺ bound. The project currently uses S⁻(0) = 0, rather than Karlin’s -1, so the rank-zero/null cases must be translated explicitly.
Required source proof route
- Introduce Mathlib-shaped predicates for common weak/strict sign of order-
r minors. These are genuine property definitions, so def ... : Prop is appropriate here; they must not be named ...Statement or used to hide an unproved theorem.
- Formalize Proposition 1.1: the Gaussian matrix
F(a)_{ij} = exp(-a (i-j)^2) is strictly totally positive and tends to the identity as a → ∞.
- Formalize Proposition 1.2 by Cauchy–Binet: if
A is SC_r and has full column rank, then F(a)A is SSC_r, and F(a)A → A.
- Full-column-rank case: apply the already formalized V.1.1 strict maximal-minor theorem to
F(a)U, then pass to S⁻(Uc) ≤ m-1 using the lower-semicontinuity/stability lemma for finite-vector sign variations under convergence.
- Deficient-rank case: follow Karlin’s induction on the number of columns. From a contradiction witness with
r+1 alternating nonzero output coordinates, construct the source kernel vector z; choose a column j₀ so deleting it preserves rank r; set t₀ = -c_{j₀}/z_{j₀} so c+t₀z has a zero j₀ coordinate; identify the output with the column-deleted matrix and apply either the full-rank case or the induction hypothesis.
- Do not replace the deficient-rank argument by an unproved rank/variation assumption or an alternate theorem.
Proposed main declaration
theorem Matrix.signVariations_mulVec_le_rank_sub_one_of_signConsistent
{m n r : ℕ} (U : Matrix (Fin n) (Fin m) ℝ)
(hrank : Module.finrank ℝ (LinearMap.range U.mulVecLin) = r)
(hSC : U.IsSignConsistentOrder r) (c : Fin m → ℝ) :
Fin.signVariations (U.mulVec c) ≤ r - 1 := by
...
The exact linear-map spelling should be adjusted to the existing Mathlib matrix API rather than introducing a project-only rank wrapper.
Acceptance criteria
- No
sorry, axioms, or theorem-shaped def ...Statement : Prop.
- Full-rank approximation and deficient-rank induction are separate reusable lemmas.
- Cauchy–Binet strictification and the finite-vector sign-variation limit lemma are proved, not assumed.
- Focused and full CI are green.
- The final theorem is strong enough to feed Karlin V.1.4 and the ASW forward implication.
Source
Karlin, Total Positivity, Vol. I, Chapter V, §1, Theorem 1.3 and Propositions 1.1–1.2 (printed pp. 220–222).
The source theorem states: if
Uis ann × mmatrix of rankrand is sign-consistent of orderr(SC_r), thenS⁻(Uc) ≤ r - 1for everyc. IfUis strictly sign-consistent of orderr(SSC_r) andc ≠ 0, then the source also gives the correspondingS⁺bound. The project currently usesS⁻(0) = 0, rather than Karlin’s-1, so the rank-zero/null cases must be translated explicitly.Required source proof route
rminors. These are genuine property definitions, sodef ... : Propis appropriate here; they must not be named...Statementor used to hide an unproved theorem.F(a)_{ij} = exp(-a (i-j)^2)is strictly totally positive and tends to the identity asa → ∞.AisSC_rand has full column rank, thenF(a)AisSSC_r, andF(a)A → A.F(a)U, then pass toS⁻(Uc) ≤ m-1using the lower-semicontinuity/stability lemma for finite-vector sign variations under convergence.r+1alternating nonzero output coordinates, construct the source kernel vectorz; choose a columnj₀so deleting it preserves rankr; sett₀ = -c_{j₀}/z_{j₀}soc+t₀zhas a zeroj₀coordinate; identify the output with the column-deleted matrix and apply either the full-rank case or the induction hypothesis.Proposed main declaration
The exact linear-map spelling should be adjusted to the existing Mathlib matrix API rather than introducing a project-only rank wrapper.
Acceptance criteria
sorry, axioms, or theorem-shapeddef ...Statement : Prop.