Programming parallel algorithms
Communications of the ACM
Sparse code generation for imperfectly nested loops with dependences
ICS '97 Proceedings of the 11th international conference on Supercomputing
The automatic generation of sparse primitives
ACM Transactions on Mathematical Software (TOMS)
Next-generation generic programming and its application to sparse matrix computations
Proceedings of the 14th international conference on Supercomputing
Communications of the ACM
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Relational Approach to the Compilation of Sparse Matrix Programs
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
Optimizing the performance of sparse matrix-vector multiplication
Optimizing the performance of sparse matrix-vector multiplication
Automatic performance tuning of sparse matrix kernels
Automatic performance tuning of sparse matrix kernels
Data parallel Haskell: a status report
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Functional correctness proofs of encryption algorithms
LPAR'05 Proceedings of the 12th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Model-driven engineering and optimizing compilers: a bridge too far?
Proceedings of the 14th international conference on Model driven engineering languages and systems
Hi-index | 0.00 |
Sparse matrix formats are typically implemented with low-level imperative programs. The optimized nature of these implementations hides the structural organization of the sparse format and complicates its verification. We define a variable-free functional language (LL) in which even advanced formats can be expressed naturally, as a pipeline-style composition of smaller construction steps. We translate LL programs to Isabelle/HOL and describe a proof system based on parametric predicates for tracking relationship between mathematical vectors and their concrete representations. This proof theory automatically verifies full functional correctness of many formats. We show that it is reusable and extensible to hierarchical sparse formats.