The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
SETHEO: a high-performance theorem prover
Journal of Automated Reasoning
Dimension inference under polymorphic recursion
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Eliminating array bound checking through dependent types
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Supporting contexts in program refinement
Science of Computer Programming
Implementing typed intermediate languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
A semantic model of types and machine instructions for proof-carrying code
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Octave: A Free, High-Level Language for Mathematics
Linux Journal
A certifying compiler for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Verification of Array, Record, and Pointer Operations in Pascal
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
A Discipline of Programming
SETHEO and E-SETHEO - The CADE-13 Systems
Journal of Automated Reasoning
Certifying Compilation and Run-Time Code Generation
Higher-Order and Symbolic Computation
Generating Data Analysis Programs from Statistical Models
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
E-SETHEO: Design, Configuration and Use of a Parallel Automated Theorem Prover
AI '99 Proceedings of the 12th Australian Joint Conference on Artificial Intelligence: Advanced Topics in Artificial Intelligence
The KIV-Approach to Software Verification
KORSO - Methods, Languages, and Tools for the Construction of Correct Software
Houdini, an Annotation Assistant for ESC/Java
FME '01 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods for Increasing Software Productivity
CADE-13 Proceedings of the 13th International Conference on Automated Deduction: Automated Deduction
CADE-16 Proceedings of the 16th International Conference on Automated Deduction: Automated Deduction
An Automated Approach for Supporting Software Reuse via Reverse Engineering
ASE '98 Proceedings of the 13th IEEE international conference on Automated software engineering
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Efficient Representation and Validation of Proofs
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
Enforceable Security Policies
Amphion/NAV: Deductive Synthesis of State Estimation Software
Proceedings of the 16th IEEE international conference on Automated software engineering
Certifying Domain-Specific Policies
Proceedings of the 16th IEEE international conference on Automated software engineering
AutoBayes: a system for generating data analysis programs from statistical models
Journal of Functional Programming
Automating the implementation of Kalman filter algorithms
ACM Transactions on Mathematical Software (TOMS)
Symbolic method of verification of definite iterations over altered data structures
Programming and Computing Software
Proceedings of the 5th international conference on Generative programming and component engineering
Verification of finite iterations over collections of variable data structures
Cybernetics and Systems Analysis
Generating Programs Plus Proofs by Refinement
Verified Software: Theories, Tools, Experiments
Generating customized verifiers for automatically generated code
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Special issue on practical aspects of automated reasoning
AI Communications - Practical Aspects of Automated Reasoning
Adding assurance to automatically generated code
HASE'04 Proceedings of the Eighth IEEE international conference on High assurance systems engineering
Certifiable program generation
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Revising UNITY programs: possibilities and limitations
OPODIS'05 Proceedings of the 9th international conference on Principles of Distributed Systems
Model-driven construction of certified binaries
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
Hi-index | 0.00 |
Code certification is a lightweight approach for formally demonstrating software quality. Its basic idea is to require code producers to provide formal proofs that their code satisfies certain quality properties. These proofs serve as certificates that can be checked independently. Since code certification uses the same underlying technology as program verification, it requires detailed annotations (e.g., loop invariants) to make the proofs possible. However, manually adding annotations to the code is time-consuming and error-prone.We address this problem by combining code certification with automatic program synthesis. Given a high-level specification, our approach simultaneously generates code and all annotations required to certify the generated code. We describe a certification extension of AUTOBAYES, a synthesis tool for automatically generating data analysis programs. Based on built-in domain knowledge, proof annotations are added and used to generate proof obligations that are discharged by the automated theorem prover E-SETHEO. We demonstrate our approach by certifying operator- and memory-safety on a data-classification program. For this program, our approach was faster and more precise than PolySpace, a commercial static analysis tool.