2013
DOI: 10.1007/978-3-319-03545-1_10
|View full text |Cite
|
Sign up to set email alerts
|

Refinements for Free!

Abstract: International audienceFormal verification of algorithms often requires a choice be-tween definitions that are easy to reason about and definitions that are computationally efficient. One way to reconcile both consists in adopt-ing a high-level view when proving correctness and then refining stepwise down to an efficient low-level implementation. Some refinement steps are interesting, in the sense that they improve the algorithms involved, while others only express a switch from data representations geared towa… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
40
0

Year Published

2014
2014
2024
2024

Publication Types

Select...
7
2

Relationship

0
9

Authors

Journals

citations
Cited by 49 publications
(40 citation statements)
references
References 18 publications
0
40
0
Order By: Relevance
“…For the moment, this is done in an ad-hoc way using morphisms between data-structures and explicitly applying rewriting rules for the correctness proof. The use of a more systematic approach such as the ones proposed in [10,19,23] would be a clear improvement.…”
Section: Discussionmentioning
confidence: 97%
See 1 more Smart Citation
“…For the moment, this is done in an ad-hoc way using morphisms between data-structures and explicitly applying rewriting rules for the correctness proof. The use of a more systematic approach such as the ones proposed in [10,19,23] would be a clear improvement.…”
Section: Discussionmentioning
confidence: 97%
“…Let us denote by the final value of k (at the end of the while loop). Then notice that the successive values of variables (a, b) in this loop correspond to a sequence (a k , b k ) 0 k that satisfies relations (9) and (10). Given that (7) holds by hypothesis, and that (8) is trivially satisfied by the integral root (x, y), we can apply Lemma 2.…”
Section: Proposition 1 (Correctness Of Algorithm 2)mentioning
confidence: 93%
“…Since then, there have been a number of refinement tools in Isabelle/HOL with support for logic (Hemer et al, 2001), object-oriented (Liu et al, 2011), functional (Lammich, 2013), and imperative (Lammich, 2015) programs. Cohen et al (2013) developed a framework for Coq called CoqEAL which automates key steps of data refinement. Delaware et al (2015) presented Fiat, a refinement framework for deductive synthesis of abstract data types in Coq.…”
Section: Refinement Of Programs Data and Proofsmentioning
confidence: 99%
“…The generated algorithms can be checked for conformity with the input specification by validating the proof trails for each refinement process, for example using the Coq library Fiat [7] to ensure the soundness of the validation step by certification with the Coq kernel. [6] presents a different Coq library using datatype refinement to verify parameterized algorithms for which the soundness proof of some version can be deduced from that of a previous (less efficiently implemented) version. Implementing inference rules directly in Coq may be of interest if one can prove that every generated synthesized algorithm is sound.…”
Section: Related Workmentioning
confidence: 99%