Programming with Dependent Types in Coq: a Study of Square Matrices
Résumé
The Coq proof system allows users to write (functional) programs and to reason about them in a formal way. We study how to program using dependently typed data structures in such a setting. Using dependently typed data structures enables programmers to have more precise specifications for their programs before starting proving any significant properties (e.g. total correctness) about these programs. We particularly focus on an operational description of square matrices and their operations. Matrices are represented using dependent types. A matrix is a vector of rows,which are themselves vectors indexed by natural numbers. We also take advantage of Coq modules system to have matrices parametrised by a carrier set. Finally, this operational description can be extracted into a mainstream functional programming language like Ocaml.
Origine | Fichiers produits par l'(les) auteur(s) |
---|