2015
DOI: 10.1007/978-3-319-17524-9_2
|View full text |Cite
|
Sign up to set email alerts
|

Developing Verified Software Using Leon

Abstract: Abstract. We present Leon, a system for developing functional Scala programs annotated with contracts. Contracts in Leon can themselves refer to recursively defined functions. Leon aims to find counterexamples when functions do not meet the specifications, and proofs when they do. Moreover, it can optimize run-time checks by eliminating statically checked parts of contracts and doing memoization. For verification Leon uses an incremental function unfolding algorithm (which could be viewed as k-induction) and S… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2016
2016
2021
2021

Publication Types

Select...
3
1
1

Relationship

1
4

Authors

Journals

citations
Cited by 5 publications
(3 citation statements)
references
References 26 publications
0
3
0
Order By: Relevance
“…Such code does not map to any C code but rather is included in the WhyML code only to enable a proof. Ghost code is available in a number of proof tools in addition to Why3, such as Dafny [31] and Leon [30]. Concretely, the Ipanema compiler instruments the generated WhyML code to maintain boolean maps B and U that record the set of cores on which threads have blocked or unblocked, respectively, since the start of the execution of the CWC operation.…”
Section: Modeling Scheduling Event-handler Behaviormentioning
confidence: 99%
“…Such code does not map to any C code but rather is included in the WhyML code only to enable a proof. Ghost code is available in a number of proof tools in addition to Why3, such as Dafny [31] and Leon [30]. Concretely, the Ipanema compiler instruments the generated WhyML code to maintain boolean maps B and U that record the set of cores on which threads have blocked or unblocked, respectively, since the start of the execution of the CWC operation.…”
Section: Modeling Scheduling Event-handler Behaviormentioning
confidence: 99%
“…There exists many static verification, analysis, and model-checking tools of various degrees of sophistication for a variety of languages, e.g. VeriFast [39] Frama-C [21], Astré [20], Boogie [5], Spec# [6], Dafny [52], Leon [48], BLAST [36]. Still, building fully verified software remains extremely labor intensive.…”
Section: Related Workmentioning
confidence: 99%
“…We hope to introduce some of the many Scala users to formal methods by providing tools they can use directly on Scala code. Leon system (http://leon.epfl.ch) is a verification and synthesis system for a subset of Scala [2,10]. Leon reuses the Scala compiler's parsing and type-checking frontend and subsequently derives verification conditions to be solved by the automated theorem provers, such as Z3 [13] and CVC4 [1].…”
Section: Introductionmentioning
confidence: 99%