Skip to main content
    • Aa
    • Aa

Formalisation in higher-order logic and code generation to functional languages of the Gauss-Jordan algorithm


In this paper, we present a formalisation in a proof assistant, Isabelle/HOL, of a naive version of the Gauss-Jordan algorithm, with explicit proofs of some of its applications; and, additionally, a process to obtain versions of this algorithm in two different functional languages (SML and Haskell) by means of code generation techniques from the verified algorithm. The aim of this research is not to compete with specialised numerical implementations of Gauss-like algorithms, but to show that formal proofs in this area can be used to generate usable functional programs. The obtained programs show compelling performance in comparison to some other verified and functional versions, and accomplish some challenging tasks, such as the computation of determinants of matrices of big integers and the computation of the homology of matrices representing digital images.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

J. Avigad , & J. Harrison (2014) Formally verified mathematics. Commun. ACM 57 (4), 6675.

A. J. Durán , M. Pérez & J. L. Varona (2014) Misfortunes of a mathematicians' trio using computer algebra systems: Can we trust? Notices AMS 61 (10), 12491252.

T. C. Hales & S. P. Ferguson (2011) The Kepler Conjecture. The Hales-Ferguson Proof. New York: Springer.

J. Harrison (2013) The HOL Light theory of Euclidean space. J. Autom. Reason. 50 (2), 173190.

T. Nipkow , L. C. Paulson & M. Wenzel (2002) Isabelle/HOL: A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer.

C. Sternagel (2013) Proof pearl - a mechanized proof of GHC's mergesort. J. Autom. Reasoning 51 (4), 357370.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *


Full text views

Total number of HTML views: 0
Total number of PDF views: 15 *
Loading metrics...

Abstract views

Total abstract views: 119 *
Loading metrics...

* Views captured on Cambridge Core between September 2016 - 23rd September 2017. This data will be updated every 24 hours.