DocumentCode
3282665
Title
Mechanical Verification of Interactive Programs Specified by Use Cases
Author
Claret, Guillaume ; Regis-Gianas, Yann
Author_Institution
INRIA Paris-Rocquencourt, Univ. Paris Diderot, Paris, France
fYear
2015
fDate
18-18 May 2015
Firstpage
61
Lastpage
67
Abstract
Interactive programs, like user interfaces, are hard to formally specify and thus to prove correct. Some ideas coming from functional programming languages have been successful to improve the way we write safer programs, compared to traditional imperative languages, but these ideas mostly apply to code fragments without any inputs -- outputs. Using the purely functional language Coq, we present a new technique to represent interactive programs and formally verify use cases using the Coq proof engine as a symbolic debugger. To this end we introduce the notion of scenarios, well-typed schema of interactions between an environment and a program. We design and certify a blog system as an illustration. Our approach generalizes unit-testing techniques and outlines a new method for mechanically assisted checking of effectful functional programs.
Keywords
functional languages; functional programming; interactive programming; program debugging; program testing; program verification; Coq functional language; Coq proof engine; blog system; formal verification; functional programs; interactive programs; mechanical assisted checking; mechanical verification; symbolic debugger; unit-testing techniques; use cases; Blogs; Cognition; Engines; Indexes; Programming; Semantics; Servers;
fLanguage
English
Publisher
ieee
Conference_Titel
Formal Methods in Software Engineering (FormaliSE), 2015 IEEE/ACM 3rd FME Workshop on
Conference_Location
Florence
Type
conf
DOI
10.1109/FormaliSE.2015.17
Filename
7166699
Link To Document