Year: 2025
Type: article
Abstract: We describe a machine-checked correctness proof of a C program that converts a coordinate-form (COO) sparse matrix to a compressed-sparse-row (CSR) matrix.The classic algorithm (sort the COO entries in lexicographic order by row,column; fill in the CSR arrays left to right) is concise but has rather intricate invariants.We illustrate a bottom-up methodology for deriving the invariants from the program.* This paper accompanies my keynote lecture "Foundational End-to-end Verification of Numerical Programs" at VSS 2025, the International Workshop on Verification of Scientific Software; and covers one of the results described in that talk.1 Barret et al.[3] describe CSR (which they called "compressed row storage") but do not mention COO nor the method of constructing CSR matrices-however, if CSR matrices were in use then there must have been a method of constructing them.
DOI: 10.4204/eptcs.432.3
Author: Andrew W. Appel
Institution: Princeton University
Language: English
Subfield: Artificial Intelligence
Field: Computer Science
Domain: Physical Sciences
Open Access status: diamond
Funder: National Science Foundation
OpenAlex ID: W4415169259
FWCI:
Cites:
Cited by:
Related to:
