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
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;
Conference_Titel :
Formal Methods in Software Engineering (FormaliSE), 2015 IEEE/ACM 3rd FME Workshop on
Conference_Location :
Florence
DOI :
10.1109/FormaliSE.2015.17