We present a program-verification approach based on coinduction, which makes it feasible to verify programs given an operational semantics of a programming language, without constructing intermediates like axiomatic semantics or verification-condition generators. Specifications can be written using any state predicates. The key observations are that being able to define the correctness of a style of program specification as a greatest fixpoint means coinduction can be used to conclude that a specification holds, and that the number of cases that need to be enumerated to have a coinductively provable specification can be reduced to a feasible number by using a generalized coinduction principle (based on notions of ``coinduction up to'' deve...
National audienceThe syntax of an imperative language does not mention explicitly the state, while i...
We exploit (co)inductive specifications and proofs to approach the evaluation of low-level programs ...
AbstractThis paper presents a method for mechanically proving the soundness of a programming logic f...
We present a program verification framework based on coinduction, which makes it feasible to verif...
We present a program-verification approach based on coinduction, which makes it feasible to verify p...
AbstractFormal verification methods have gained increased importance due to their ability to guarant...
Formal verification methods have gained increased importance due to their ability to guarantee syste...
Coinduction is a proof rule. It is the dual of induction. It allows reasoning about non--well--foun...
We present language-independent formal methods that are parameterized by the operational semantics o...
A handbook to the Coq software for writing and checking mathematical proofs, with a practical engine...
Abstract. The goal of this lecture is to show how modern theorem provers—in this case, the Coq proof...
Induction and coinduction are two complementary techniques used in mathematics and computer science....
The objective of this paper is to provide a theoretical foundation for program extraction from proof...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
We introduce a generalized logic programming paradigm where programs, consisting of facts and rules ...
National audienceThe syntax of an imperative language does not mention explicitly the state, while i...
We exploit (co)inductive specifications and proofs to approach the evaluation of low-level programs ...
AbstractThis paper presents a method for mechanically proving the soundness of a programming logic f...
We present a program verification framework based on coinduction, which makes it feasible to verif...
We present a program-verification approach based on coinduction, which makes it feasible to verify p...
AbstractFormal verification methods have gained increased importance due to their ability to guarant...
Formal verification methods have gained increased importance due to their ability to guarantee syste...
Coinduction is a proof rule. It is the dual of induction. It allows reasoning about non--well--foun...
We present language-independent formal methods that are parameterized by the operational semantics o...
A handbook to the Coq software for writing and checking mathematical proofs, with a practical engine...
Abstract. The goal of this lecture is to show how modern theorem provers—in this case, the Coq proof...
Induction and coinduction are two complementary techniques used in mathematics and computer science....
The objective of this paper is to provide a theoretical foundation for program extraction from proof...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
We introduce a generalized logic programming paradigm where programs, consisting of facts and rules ...
National audienceThe syntax of an imperative language does not mention explicitly the state, while i...
We exploit (co)inductive specifications and proofs to approach the evaluation of low-level programs ...
AbstractThis paper presents a method for mechanically proving the soundness of a programming logic f...