We present a method for automatically generating verification con-ditions for a class of imperative programs and safety properties. Our method is parametric with respect to the semantics of the impera-tive programming language, as it... more
We present a method for automatically generating verification con-ditions for a class of imperative programs and safety properties. Our method is parametric with respect to the semantics of the impera-tive programming language, as it specializes, by using unfold/fold transformation rules, a Horn clause interpreter that encodes that se-mantics. We define a multi-step operational semantics for a fragment of the C language and compare the verification conditions obtained by using this semantics with those obtained by using a more tradi-tional small-step semantics. The flexibility of the approach is fur-ther demonstrated by showing that it is possible to easily take into account alternative operational semantics definitions for modeling new language features. Finally, we provide an experimental evalu-ation of the method by generating verification conditions using the multi-step and the small-step semantics for a few hundreds of pro-grams taken from various publicly available benchmarks,...
The categorical semantics of reversible computing must be a category which combines the concepts of partiality and the ability to reverse any map in the category. Inverse categories, restriction categories in which each map is a partial... more
The categorical semantics of reversible computing must be a category which combines the concepts of partiality and the ability to reverse any map in the category. Inverse categories, restriction categories in which each map is a partial isomorphism, provide exactly this structure. This thesis explores inverse categories and relates them to both quantum computing and standard non-reversible computing. The former is achieved by showing that commutative Frobenius algebras form an inverse category. The latter is by establishing the equivalence of the category of discrete inverse categories to the category of discrete Cartesian restriction categories — this is the main result of this thesis. This allows one to transfer the formulation of computability given by Turing categories onto discrete inverse categories.
In this paper we address the problem of solving recursive domain equations using uncountable limits of domains. These arise for instance, when dealing with the ω1-continuous function-space constructor and are used in the denotational... more
In this paper we address the problem of solving recursive domain equations using uncountable limits of domains. These arise for instance, when dealing with the ω1-continuous function-space constructor and are used in the denotational semantics of programming languages which feature unbounded choice constructs. Surprisingly, the category of cpo's and ω1-continuous embeddings is not ω0-cocomplete. Hence the standard technique for solving reflexive domain equations fails. We give two alternative methods. We discuss also the issue of completeness of the λβηcalculus w.r.t reflexive domain models. We show that among the reflexive domain models in the category of cpo's and ω0-continuous functions there is one which has a minimal theory. We give a reflexive domain model in the category of cpo's and ω1-continuous functions whose theory is precisely the λβη theory. So ω1-continuous λ-models are complete for the λβη-calculus.
In this article, we present the use of the Coq proof assistant with DESS (Master thesis) students. First, in the framework of a course of programming language semantics, Coq greatly helps the students to understand formal and abstract... more
In this article, we present the use of the Coq proof assistant with DESS (Master thesis) students. First, in the framework of a course of programming language semantics, Coq greatly helps the students to understand formal and abstract notions, such as induction, by binding them to more concrete terms. Next, a computer science project shows that Coq is also appropriate when dealing with larger problems. Last, we show how proofs developed by means of the Focal toolbox made it possible to get very valuable hints on the development of that system.
We start with a example of assembler programming, and show how, even at this low level, the structure of a programming language does not directly mirror the structure of the hardware, but that it is also decisively influenced by the human... more
We start with a example of assembler programming, and show how, even at this low level, the structure of a programming language does not directly mirror the structure of the hardware, but that it is also decisively influenced by the human practices surrounding computer use, and that, in particular, assembly language gives a view of the hardware which is accommodated to human interests and capabilities. We give several historical examples and illustrate the changing pattern of mutual accommodation between human practices and computer technology, arguing for a more explicitly dialectical and critical approach to the history and philosophy of programming.
In this article, we present the use of the Coq proof assistant with DESS (Master thesis) students. First, in the framework of a course of programming language semantics, Coq greatly helps the students to understand formal and abstract... more
In this article, we present the use of the Coq proof assistant with DESS (Master thesis) students. First, in the framework of a course of programming language semantics, Coq greatly helps the students to understand formal and abstract notions, such as induction, by binding them to more concrete terms. Next, a computer science project shows that Coq is also appropriate when dealing with larger problems. Last, we show how proofs developed by means of the Focal toolbox made it possible to get very valuable hints on the development of that system.
Abstract A constraint-based approach to invariant generation in programs translates a program into constraints that are solved using off-the-shelf constraint solvers to yield desired program invariants. In this paper we show how the... more
Abstract A constraint-based approach to invariant generation in programs translates a program into constraints that are solved using off-the-shelf constraint solvers to yield desired program invariants. In this paper we show how the constraint-based approach can be used to ...
The main limitation of software model checking is that, due to state explosion, it does not scale to real-world multi-threaded pro- grams. One of the reasons is that current software model checkers adhere to full semantics of programming... more
The main limitation of software model checking is that, due to state explosion, it does not scale to real-world multi-threaded pro- grams. One of the reasons is that current software model checkers adhere to full semantics of programming languages, which are based on very per- missive models of concurrency. Current runtime platforms for programs, however, restrict concurrency in various ways
The Resource λ-calculus (RC) is a variation of the λ-calculus, where arguments can be superposed and must be linearly used. Hence it is a model for non-deterministic and linear programming languages, and the target language of the Taylor... more
The Resource λ-calculus (RC) is a variation of the λ-calculus, where arguments can be superposed and must be linearly used. Hence it is a model for non-deterministic and linear programming languages, and the target language of the Taylor expansion of λ-terms. In a strictly typed restriction of RC, we study the persistence and we define a Geometry of Interaction that is invariant under reduction, characterises persistence, and counts the addends in normal forms.
In the paper "Extensional PERs" by P. Freyd, P. Mulry, G. Rosolini and D. Scott, a category $\mathcal{C}$ of "pointed complete extensional PERs" and computable maps is introduced to provide an instance of an \emph{algebraically compact... more
In the paper "Extensional PERs" by P. Freyd, P. Mulry, G. Rosolini and D. Scott, a category $\mathcal{C}$ of "pointed complete extensional PERs" and computable maps is introduced to provide an instance of an \emph{algebraically compact category} relative to a restricted class of functors. Algebraic compactness is a synthetic condition on a category which ensures solutions of recursive equations involving endofunctors of the category. We extend that result to include all internal functors on $\mathcal{C}$ when $\mathcal{C}$ is viewed as a full internal category of the effective topos. This is done using two general results: one about internal functors in general, and one about internal functors in the effective topos.