Vadim Zaliva

2papers

2 Papers

9.5PLMar 27
HELIX: Verified compilation of cyber-physical control systems to LLVM IR

Vadim Zaliva, Yannick Zakowski, Ilia Zaichuk et al.

This paper presents the design of HELIX, an end-to-end verified code generation system with a focus on the intersection of high-performance and high-assurance numerical computing. The code generation can be fine-tuned to generate efficient code for a broad set of computer architectures while providing formal guarantees of the correctness of such generated code. Using a real-life example of a cyber-physical robot system, this paper demonstrates how, by using HELIX, one can start from a high-level mathematical formulation of the problem, apply a series of algebraic transformations that target intermediate languages, and generate an efficient imperative implementation. This is done while formally verifying semantic preservation from the original formulation down to LLVM IR. The method we used for high-performance code compilation is the algebraic transformation of vector and matrix computations into a dataflow optimised for parallel or vectorised processing on target hardware. The abstraction used to formalise and verify this technique is an operator language and accompanying semantics-preserving term rewriting. We use sparse vector abstraction to represent partial computations, enabling us to use algebraic reasoning to prove parallel decomposition properties. HELIX's verification infrastructure comprises multiple intermediate languages and verification approaches, all implemented in the Coq proof assistant. In particular, it uses verified term rewriting, translation validation, metaprogramming, verified compilation, layered monadic interpreters; it also supports application-specific uses of (verified) numerical analysis as we demonstrate via the running example.

NADec 12, 2017
Constructing an orthonormal set of eigenvectors for DFT matrix using Gramians and determinants

Vadim Zaliva

The problem of constructing an orthogonal set of eigenvectors for a DFT matrix is well studied. An elegant solution is mentioned by Matveev in his paper "Interwining relations between the Fourier transfom and discrete Fourier transform, the related functional identities and beyond". In this paper, we present a distilled form of his solution including some steps unexplained in his paper, along with correction of typos and errors using more consistent notation. Then we compare the computational complexity of his method with the more traditional method involving direct application of the Gram-Schmidt process. Finally, we present our implementation of Matveev's method as a Mathematica module.