How statement and proof provenance work
The first chip identifies the source of the statement or construction; the second identifies the source of its local proof or verification.
- Literature-sourced: the exact statement appears in a cited source; only wording and notation differ.
- AI-adapted: a semantically identical restatement of literature-sourced material, modulo indexing, notation, and boundary cases adopted by the library.
- AI-generated: a genuinely novel statement formulated by AI, with no source for the claim itself.
These labels describe origin, not correctness: citations and verification chips remain separate evidence.
Validated CSR matrix-vector multiplication terminates with a status
Statement
Let be a field, let , let be finite integer arrays,
and let be finite arrays with entries in . The algorithm
Validated compressed sparse row matrix-vector product terminates on every such
input. Its return status is invalid-dimension, invalid-index, or ok with
a vector in .
Facts & Assumptions
Given: A field , integer dimension candidates , finite integer arrays , and finite arrays with entries in .
Validated compressed sparse row matrix-vector product: with , the routine first returns invalid-dimension unless , , , and .
Validated compressed sparse row matrix-vector product: after the dimension checks, finite scans check for , , , for , and for ; any failure returns invalid-index.
Validated compressed sparse row matrix-vector product: after validation, the routine initializes for , traverses in each row, updates , and returns ok with .
Proof
The tests in [L1] are finite and either return invalid-dimension or establish natural dimensions and the required array lengths. Since the arrays are finite, is also a finite natural. The pointer-bound, pointer-monotonicity, and column-index scans in [L2] have respectively , , and iterations, with two additional endpoint tests; every accessed index exists by [L1]. Thus validation finishes, either returning invalid-index or establishing all conditions in [L2].
If validation passes, [L2] gives and . Hence the row ranges partition and have total length . The initialization and outer loop in [L3] each have iterations, and the inner loops have iterations in total. Every and accessed exists; field addition and multiplication keep each accumulator in . The routine therefore returns ok with a vector in . If , validation forces and returns the empty vector; empty row ranges likewise require no updates. Together with step 1.1 this proves the claim.
Depends on
Used by
Nothing in the library uses this result yet.
Dependency tree · two levels
2 results within two dependency steps of this one, each drawn at its shortest distance from it. An arrow runs from a result to what uses it, so the chart reads left to right and ends at this result, which carries a heavier outline. Every node is a link to that result. Click elsewhere on the chart to enlarge it.
Sources
- Yousef Saad, Iterative Methods for Sparse Linear Systems, 2nd ed., Chapter 3 §3.5, printed pp. 95–96 (standard reference, not scraped)