F-IDEPub Date : 2014-04-25DOI: 10.4204/EPTCS.149.7
François Pessaux
{"title":"FoCaLiZe: Inside an F-IDE","authors":"François Pessaux","doi":"10.4204/EPTCS.149.7","DOIUrl":"https://doi.org/10.4204/EPTCS.149.7","url":null,"abstract":"For years, Integrated Development Environments have demonstrated their usefulness in order to ease the development of software. High-level security or safety systems require proofs of compliance to standards, based on analyses such as code review and, increasingly nowadays, formal proofs of conformance to specifications. This implies mixing computational and logical aspects all along the development, which naturally raises the need for a notion of Formal IDE. This paper examines the FoCaLiZe environment and explores the implementation issues raised by the decision to provide a single language to express specification properties, source code and machine-checked proofs while allowing incremental development and code reusability. Such features create strong dependencies between functions, properties and proofs, and impose an particular compilation scheme, which is described here. The compilation results are runnable OCaml code and a checkable Coq term. All these points are illustrated through a running example.","PeriodicalId":108511,"journal":{"name":"F-IDE","volume":"209 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123020364","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
F-IDEPub Date : 2014-04-25DOI: 10.4204/EPTCS.149.2
K. Leino, Valentin Wüstholz
{"title":"The Dafny Integrated Development Environment","authors":"K. Leino, Valentin Wüstholz","doi":"10.4204/EPTCS.149.2","DOIUrl":"https://doi.org/10.4204/EPTCS.149.2","url":null,"abstract":"In recent years, program verifiers and interactive theorem provers have become more powerful and more suitable for verifying large programs or proofs. This has demonstrated the need for improving the user experience of these tools to increase productivity and to make them more accessible to non-experts. This paper presents an integrated development environment for Dafny-a programming language, verifier, and proof assistant-that addresses issues present in most state-of-the-art verifiers: low responsiveness and lack of support for understanding non-obvious verification failures. The paper demonstrates several new features that move the state-of-the-art closer towards a verification environment that can provide verification feedback as the user types and can present more helpful information about the program or failed verifications in a demand-driven and unobtrusive way.","PeriodicalId":108511,"journal":{"name":"F-IDE","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129246396","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
F-IDEPub Date : 2014-04-25DOI: 10.4204/EPTCS.149.9
J. Witulski, M. Leuschel
{"title":"Checking Computations of Formal Method Tools - A Secondary Toolchain for ProB","authors":"J. Witulski, M. Leuschel","doi":"10.4204/EPTCS.149.9","DOIUrl":"https://doi.org/10.4204/EPTCS.149.9","url":null,"abstract":"We present the implementation of pyB, a predicate - and expression - checker for the B language. The tool is to be used for a secondary tool chain for data validation and data generation, with ProB being used in the primary tool chain. Indeed, pyB is an independent cleanroom-implementation which is used to double-check solutions generated by ProB, an animator and model-checker for B specifications. One of the major goals is to use ProB together with pyB to generate reliable outputs for high-integrity safety critical applications. Although pyB is still work in progress, the ProB/pyB toolchain has already been successfully tested on various industrial B machines and data validation tasks.","PeriodicalId":108511,"journal":{"name":"F-IDE","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123514935","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
F-IDEPub Date : 2014-04-25DOI: 10.4204/EPTCS.149.6
Damien Doligez, C. Faure, T. Hardin, Manuel Maarek
{"title":"Experience in using a typed functional language for the development of a security application","authors":"Damien Doligez, C. Faure, T. Hardin, Manuel Maarek","doi":"10.4204/EPTCS.149.6","DOIUrl":"https://doi.org/10.4204/EPTCS.149.6","url":null,"abstract":"In this paper we present our experience in developing a security application using a typed functional language. We describe how the formal grounding of its semantic and compiler have allowed for a trustworthy development and have facilitated the fulfillment of the security specification.","PeriodicalId":108511,"journal":{"name":"F-IDE","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124001309","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
F-IDEPub Date : 2014-04-06DOI: 10.4204/EPTCS.149.4
M. Jaume, T. Laurent
{"title":"Teaching Formal Methods and Discrete Mathematics","authors":"M. Jaume, T. Laurent","doi":"10.4204/EPTCS.149.4","DOIUrl":"https://doi.org/10.4204/EPTCS.149.4","url":null,"abstract":"Despite significant advancements in the conception of (formal) integrated development environments, applying formal methods in software industry is still perceived as a difficult task. To make the task easier, providing tools that help during the development cycle is essential but we think that education of computer scientists and software engineers is also an important challenge to take up. Indeed, we believe that formal methods courses do not appear sufficiently early in compter science curricula and thus are not widely used and perceived as a valid professional skill. In this paper, we claim that teaching formal methods could be done at the undergraduate level by mixing formal methods and discrete mathematics courses and we illustrate such an approach with a small development within FoCaLiZe. We also believe that this could considerably benefit the learning of discrete mathematics.","PeriodicalId":108511,"journal":{"name":"F-IDE","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125590098","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}