Results 1  10
of
13
Verification of NonFunctional Programs using Interpretations in Type Theory
"... We study the problem of certifying programs combining imperative and functional features within the general framework of type theory. Type theory constitutes a powerful specification language, which is naturally suited for the proof of purely functional programs. To deal with imperative programs, we ..."
Abstract

Cited by 63 (4 self)
 Add to MetaCart
We study the problem of certifying programs combining imperative and functional features within the general framework of type theory. Type theory constitutes a powerful specification language, which is naturally suited for the proof of purely functional programs. To deal with imperative programs, we propose a logical interpretation of an annotated program as a partial proof of its specification. The construction of the corresponding partial proof term is based on a static analysis of the effects of the program, and on the use of monads. The usual notion of monads is refined in order to account for the notion of effect. The missing subterms in the partial proof term are seen as proof obligations, whose actual proofs are left to the user. We show that the validity of those proof obligations implies the total correctness of the program. We also establish a result of partial completeness. This work has been implemented in the Coq proof assistant. It appears as a tactic taking an ann...
Why: A MultiLanguage MultiProver Verification Tool
"... This article introduces the verification tool Why. This tool produces verification conditions from annotated programs given as input. ..."
Abstract

Cited by 45 (0 self)
 Add to MetaCart
This article introduces the verification tool Why. This tool produces verification conditions from annotated programs given as input.
Lightweight Integration of the Ergo Theorem Prover inside a Proof Assistant, in: Second Automated Formal Methods workshop series (AFM07
, 2007
"... Ergo is a little engine of proof dedicated to program verification. It fully supports quantifiers and directly handles polymorphic sorts. Its core component is CC(X), a new combination scheme for the theory of uninterpreted symbols parameterized by a builtin theory X. In order to make a sound integ ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
Ergo is a little engine of proof dedicated to program verification. It fully supports quantifiers and directly handles polymorphic sorts. Its core component is CC(X), a new combination scheme for the theory of uninterpreted symbols parameterized by a builtin theory X. In order to make a sound integration in a proof assistant possible, Ergo is capable of generating proof traces for CC(X). Alternatively, Ergo can also be called interactively as a simple oracle without further verification. It is currently used to prove correctness of C and Java programs as part of the Why platform. 1.
A Theory of Monads Parameterized By Effects
, 1999
"... Monads were introduced in computer science to express the semantics of programs with computational effects, while type and e ect inference was introduced to mark out those effects. In this article, we propose a combination of the notions of effects and monads, where the monadic operators are paramet ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Monads were introduced in computer science to express the semantics of programs with computational effects, while type and e ect inference was introduced to mark out those effects. In this article, we propose a combination of the notions of effects and monads, where the monadic operators are parameterized by effects. We establish some relationships between those generalized monads and the classical ones. Then we use a generalized monad to translate imperative programs into purely functional ones. We establish the correctness of that translation. This work has been put into practice in the Coq proof assistant to establish the correctness of imperative programs.
Formalization and Verification of a Mail Server in Coq
 International Symposium on Software Security
, 2003
"... This paper reports on the formalization and verification of a mail server (SMTP server) in Coq. The correctness of a mail server is very important: bugs of the mail server may be abused for eavesdropping mail contents, spreading virus, sending spam messages, etc. We have verified a part of a mai ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
This paper reports on the formalization and verification of a mail server (SMTP server) in Coq. The correctness of a mail server is very important: bugs of the mail server may be abused for eavesdropping mail contents, spreading virus, sending spam messages, etc. We have verified a part of a mail server written in Java, by manually translating the Java program into a Coq function as faithfully as possible, and verifying properties of the Coq function. The results of this experiment indicate the feasibility and usefulness of verification of middlesized system softwares in this style. The verification has been carried out in a few months, and a few bugs in the mail server have been indeed found during the verification process.
Program Verification using Coq Introduction to the WHY tool
 TYPES SUMMER SCHOOL 2005
, 2005
"... ..."
Mathematical Logic
, 2005
"... Prague 2005First of all, I would like to thank my supervisor, Petr ˇ Stěpánek, for showing me the fascinating world of mathematical logic and for his advice and many helpful comments on earlier drafts of this Thesis. Furthermore, I would like to thank Petr Horsk´y for numerous discussions on softwar ..."
Abstract
 Add to MetaCart
(Show Context)
Prague 2005First of all, I would like to thank my supervisor, Petr ˇ Stěpánek, for showing me the fascinating world of mathematical logic and for his advice and many helpful comments on earlier drafts of this Thesis. Furthermore, I would like to thank Petr Horsk´y for numerous discussions on software verification and on this Thesis. Last but not least, I would like to thank Josef Urban for his advice he gave me during my research for this Thesis. I declare that I have written this Master Thesis on my own and listed all
Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra
, 2004
"... para obtenção do grau de Mestre em Ciências da Computação. ..."
Verification of Parallel Programs with
"... This thesis presents the first formalization of the OwickiGries method and its compositional version, the relyguarantee method, in a theorem prover. These methods are widely used for correctness proofs of parallel imperative programs with shared variables. We define syntax, semantics and proof rul ..."
Abstract
 Add to MetaCart
This thesis presents the first formalization of the OwickiGries method and its compositional version, the relyguarantee method, in a theorem prover. These methods are widely used for correctness proofs of parallel imperative programs with shared variables. We define syntax, semantics and proof rules in Isabelle/HOL, which is the instantiation of higherorder logic in the theorem prover Isabelle. The proof rules also provide for programs parameterized in the number of parallel components. Their correctness w.r.t. the semantics is proven mechanically and the completeness proofs for both methods are extended to the new case of parameterized programs. For the automatic generation of verification conditions we define a tactic based on the proof rules. Using this tactic we verify several nontrivial examples for parameterized and nonparameterized programs. Zusammenfassung In dieser Arbeit wird die OwickiGries Methode, und ihre kompositionelle