• 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