Truncated and unrestricted square kernels #
This file records the elementary algebraic facts about the kernels
(t - a)² and (t - a)₊² used for total nonnegativity. The positive
part is max · 0.
TN05. The identity (t - a)² = t² + a² - 2 t a as a three-term
rank-one expansion.
TN05. Factorization against (1, a, a²) and (t², -2 t, 1).
TN07. In the unrestricted chamber a ≤ b ≤ t ≤ u, the 2×2 minor is
nonnegative. The remaining factor (t-a)(u-b)+(u-a)(t-b) is a sum of
nonnegative terms in this chamber.
TN08. The 3×3 minor of unrestricted squares is nonnegative on nondecreasing arguments.
Size-one minors are squares of nonnegative numbers.
TN11. Increasing minors of a truncated matrix in the unrestricted chamber.
Block-triangular determinant after splitting Fin (m + n) as Fin m ⊕ Fin n.
TN13: truncated squares are totally nonnegative #
Square truncated determinants of size at most three, plus the two vanishing chambers of size at least four.
TN13 for increasing selections of length at most three, and for every length in the first-column or unrestricted chambers.
Step kernel, Cauchy–Binet, and the discrete-to-continuous limit (TN13) #
First column index where a i ≤ t j, or n if the row is zero.
Equations
- BollobasNikiforov.stepCutoff a t i = if h : (BollobasNikiforov.stepSupport a t i).Nonempty then ↑((BollobasNikiforov.stepSupport a t i).min' h) else n
Instances For
Equations
- BollobasNikiforov.decidablePredStrictMonoFin k m = Classical.decPred fun (f : Fin k → Fin m) => StrictMono f
The strictly increasing enumeration of the image of an injection u : Fin k → Fin m.
Equations
- BollobasNikiforov.injRearrange hu = ⟨⇑((Finset.image u Finset.univ).orderEmbOfFin ⋯), ⋯⟩
Instances For
The permutation of Fin k through which an injection u factors as injRearrange hu ∘ injPerm hu.
Equations
- BollobasNikiforov.injPerm hu = Equiv.ofBijective (fun (i : Fin k) => Classical.choose ⋯) ⋯
Instances For
Injections Fin k → Fin m correspond to pairs of a strictly increasing map and a permutation of
Fin k.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Uniform grid composition #
One less than the smallest of the values a i and t j.
Equations
- BollobasNikiforov.gridXMin hr a t = (BollobasNikiforov.valuesFinset a t).min' ⋯ - 1
Instances For
One more than the largest of the values a i and t j.
Equations
- BollobasNikiforov.gridXMax hr a t = (BollobasNikiforov.valuesFinset a t).max' ⋯ + 1
Instances For
The mesh of the uniform grid with N steps from gridXMin to gridXMax.
Equations
- BollobasNikiforov.gridDelta hr a t N = (BollobasNikiforov.gridXMax hr a t - BollobasNikiforov.gridXMin hr a t) / ↑N
Instances For
The k-th point of the uniform grid: gridXMin + k * gridDelta.
Equations
- BollobasNikiforov.gridPt hr a t N k = BollobasNikiforov.gridXMin hr a t + ↑↑k * BollobasNikiforov.gridDelta hr a t N
Instances For
The step kernel from the row parameters a to the grid points.
Equations
- BollobasNikiforov.gridH1 hr a t N = BollobasNikiforov.stepKernel a (BollobasNikiforov.gridPt hr a t N)
Instances For
The step kernel between grid indices, compared through their values.
Equations
- BollobasNikiforov.gridH2 N = BollobasNikiforov.stepKernel (fun (k : Fin (N + 1)) => ↑↑k) fun (ℓ : Fin (N + 1)) => ↑↑ℓ
Instances For
The step kernel from the grid points to the column parameters t.
Equations
- BollobasNikiforov.gridH3 hr a t N = BollobasNikiforov.stepKernel (BollobasNikiforov.gridPt hr a t N) t
Instances For
The scalar matrix gridDelta • 1 on grid indices.
Equations
- BollobasNikiforov.gridD hr a t N = Matrix.diagonal fun (x : Fin (N + 1)) => BollobasNikiforov.gridDelta hr a t N
Instances For
The grid indices k with a i ≤ gridPt k ≤ t j.
Equations
- BollobasNikiforov.gridSupport hr a t N i j = {k : Fin (N + 1) | a i ≤ BollobasNikiforov.gridPt hr a t N k ∧ BollobasNikiforov.gridPt hr a t N k ≤ t j}