2015
DOI: 10.1017/s0956796815000155
|View full text |Cite
|
Sign up to set email alerts
|

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

Abstract: 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 t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
3
1
1

Relationship

1
4

Authors

Journals

citations
Cited by 5 publications
(4 citation statements)
references
References 19 publications
0
4
0
Order By: Relevance
“…Despite this limitation, the HA library has been shown to be very useful for formalizing linear algebra algorithms. Indeed, based on the HA library, we successfully complete several linear algebra developments [ 2 4 , 20 ].…”
Section: Preliminariesmentioning
confidence: 99%
See 1 more Smart Citation
“…Despite this limitation, the HA library has been shown to be very useful for formalizing linear algebra algorithms. Indeed, based on the HA library, we successfully complete several linear algebra developments [ 2 4 , 20 ].…”
Section: Preliminariesmentioning
confidence: 99%
“…In our previous works using the HA library [ 2 4 , 20 ], we do not only impose finite types to model the rows and columns of matrices, but we also require more conditions (an explicit enumeration of its universe and some basic arithmetical properties) which were encoded by means of a type class named . The class is designed to facilitate the proofs and to be later instantiated by executable types.…”
Section: Preliminariesmentioning
confidence: 99%
“…Our prototypical implementation CPA-Boot in C (see Sect. 7) is derived from the fine-grained formalization of PA-Boot in Isabelle/HOL based on a code-to-spec review, à la [23], to exploit the efficiency of C. An alternative way to construct the implementation is to use the built-in functionality of code generation in Isabelle/HOL [27], [28], which synthesizes functional executable code (e.g., Scala, Haskell, and ML) that inherits the correctness assurance from the verified protocol specification yet is hardly optimal in terms of efficiency. A detailed comparison of CPA-Boot against the synthesized functional implementation is subject to future work.…”
Section: Discussion and Future Workmentioning
confidence: 99%
“…The formal model of PA-Boot consists of a high-level specification S h and a refined low-level specification S l : S h captures the core components of PA-Boot and gives the simplest description of the system behavior, whereas S l -closer to the implementation layer -encodes a more fine-grained characterization of all possible executions of the system. We opt for deductive verification as implemented in Isabelle/HOL due to its scalability and inherent support of abstraction refinement [26] and code generation [27], [28]. A detailed discussion on other verification approaches can be found in Sect.…”
Section: Formalization In Isabelle/holmentioning
confidence: 99%