This thesis is about techniques for proving the functional correctness of Abstract Data Type (ADT) implementations. We provide a framework for proving the functional correctness of imperative language implementations of ADTs, using a theory of refinement. We develop a theory of refinement to reason about both declarative and imperative language implementations of ADTs. Our theory facilitates compositional reasoning about complex implementations that may use several layers of sub-ADTs. Based on our theory of refinement, we propose a methodology for proving the functional correctness of an existing imperative language implementation of an ADT. We propose a mechanizable translation from an abstract model in the Z language to an abstract imple...
The cardinal purpose of teaching programming is to demonstrate a method of developing correct progra...
In order to contribute to the software reliability problem, tools have beend esigned inord er to ana...
A hallmark of modern programming languages is the strict isolation guarantees they provide to client...
We describe our experience with verifying the scheduler-related functionality of FreeRTOS, a popular...
We propose a methodology for carrying out refinement proofs across declarative abstract models and c...
Data refinement is a technique for transforming system specifications into system implementation tha...
FOOPS is a concurrent object-oriented language. Based on FOOPS operational semantics, we define a no...
We propose to check the execution of an abstract data type's imperative implementation against ...
This thesis addresses the problem of avoiding errors in functionalprograms. The thesis has three par...
We propose a general framework for abstraction with respect to quantitative properties, such as wors...
Journal ArticleIn order to prove the correctness (or consistency) of an implementation of a data ty...
The constructive approach to software correctness aims at formal modelling of the intended behaviour...
Predicate abstraction is a powerful technique to reduce the state space of a program to a finite and...
International audienceInterpreters are complex pieces of software: even if the abstract interpretati...
Type systems and their accompanying checkers provide support for the programmer to write better and ...
The cardinal purpose of teaching programming is to demonstrate a method of developing correct progra...
In order to contribute to the software reliability problem, tools have beend esigned inord er to ana...
A hallmark of modern programming languages is the strict isolation guarantees they provide to client...
We describe our experience with verifying the scheduler-related functionality of FreeRTOS, a popular...
We propose a methodology for carrying out refinement proofs across declarative abstract models and c...
Data refinement is a technique for transforming system specifications into system implementation tha...
FOOPS is a concurrent object-oriented language. Based on FOOPS operational semantics, we define a no...
We propose to check the execution of an abstract data type's imperative implementation against ...
This thesis addresses the problem of avoiding errors in functionalprograms. The thesis has three par...
We propose a general framework for abstraction with respect to quantitative properties, such as wors...
Journal ArticleIn order to prove the correctness (or consistency) of an implementation of a data ty...
The constructive approach to software correctness aims at formal modelling of the intended behaviour...
Predicate abstraction is a powerful technique to reduce the state space of a program to a finite and...
International audienceInterpreters are complex pieces of software: even if the abstract interpretati...
Type systems and their accompanying checkers provide support for the programmer to write better and ...
The cardinal purpose of teaching programming is to demonstrate a method of developing correct progra...
In order to contribute to the software reliability problem, tools have beend esigned inord er to ana...
A hallmark of modern programming languages is the strict isolation guarantees they provide to client...