Results 1  10
of
57
A New Deconstructive Logic: Linear Logic
, 1995
"... The main concern of this paper is the design of a noetherian and confluent normalization for LK 2 (that is, classical second order predicate logic presented as a sequent calculus). The method we present is powerful: since it allows us to recover as fragments formalisms as seemingly different a ..."
Abstract

Cited by 110 (11 self)
 Add to MetaCart
The main concern of this paper is the design of a noetherian and confluent normalization for LK 2 (that is, classical second order predicate logic presented as a sequent calculus). The method we present is powerful: since it allows us to recover as fragments formalisms as seemingly different as Girard's LC and Parigot's , FD ([9, 11, 27, 31]), delineates other viable systems as well, and gives means to extend the Krivine/Leivant paradigm of `programmingwithproofs' ([22, 23]) to classical logic; it is painless: since we reduce strong normalization and confluence to the same properties for linear logic (for nonadditive proof nets, to be precise) using appropriate embeddings (socalled decorations); it is unifying: it organizes known solutions in a simple pattern that makes apparent the how and why of their making. A comparison of our method to that of embedding LK into LJ (intuitionistic sequent calculus) brings to the fore the latter's defects for these `deconstructi...
Inductive and Coinductive types with Iteration and Recursion
 Proceedings of the 1992 Workshop on Types for Proofs and Programs, Bastad
, 1992
"... We study (extensions of) simply and polymorphically typed lambda calculus from a point of view of how iterative and recursive functions on inductive types are represented. The inductive types can usually be understood as initial algebras in a certain category and then recursion can be defined in ter ..."
Abstract

Cited by 52 (0 self)
 Add to MetaCart
We study (extensions of) simply and polymorphically typed lambda calculus from a point of view of how iterative and recursive functions on inductive types are represented. The inductive types can usually be understood as initial algebras in a certain category and then recursion can be defined in terms of iteration. However, in the syntax we often have only weak initiality, which makes the definition of recursion in terms of iteration inefficient or just impossible. We propose a categorical notion of (primitive) recursion which can easily be added as computation rule to a typed lambda calculus and gives us a clear view on what the dual of recursion, corecursion, on coinductive types is. (The same notion has, independently, been proposed by [Mendler 1991].) We look at how these syntactic notions work out in the simply typed lambda calculus and the polymorphic lambda calculus. It will turn out that in the syntax, recursion can be defined in terms of corecursion and vice versa using polymo...
Proof Normalization Modulo
, 1998
"... We consider a class of logical formalisms, in which firstorder logic is extended by identifying propositions modulo a given congruence. We particularly focus on the case where this congruence is induced by a confluent and terminating rewrite system over the propositions. This extension enhances the ..."
Abstract

Cited by 49 (17 self)
 Add to MetaCart
We consider a class of logical formalisms, in which firstorder logic is extended by identifying propositions modulo a given congruence. We particularly focus on the case where this congruence is induced by a confluent and terminating rewrite system over the propositions. This extension enhances the power of firstorder logic and various formalisms, including higherorder logic, can be described in this framework. We conjecture that proof normalization and logical consistency always hold over this class of formalisms, provided some minimal conditions over the rewrite system are fulfilled. We prove this conjecture for some subcases, including higherorder logic. At last, we extend these results to classical sequent calculus.
Un Calcul De Constructions Infinies Et Son Application A La Verification De Systemes Communicants
, 1996
"... m networks and the recent works of Thierry Coquand in type theory have been the most important sources of motivation for the ideas presented here. I wish to specially thank Roberto Amadio, who read the manuscript in a very short delay, providing many helpful comments and remarks. Many thanks also to ..."
Abstract

Cited by 18 (0 self)
 Add to MetaCart
m networks and the recent works of Thierry Coquand in type theory have been the most important sources of motivation for the ideas presented here. I wish to specially thank Roberto Amadio, who read the manuscript in a very short delay, providing many helpful comments and remarks. Many thanks also to Luc Boug'e, who accepted to be my oficial supervisor, and to the chair of the jury, Michel Cosnard, who opened to me the doors of the LIP. During these last three years in Lyon I met many wonderful people, who then become wonderful friends. Miguel, Nuria, Veronique, Patricia, Philippe, Pia, Rodrigo, Salvador, Sophie : : : with you I have shared the happiness and sadness of everyday life, those little things which make us to remember someone forever. I also would like to thank the people from "Tango de Soie", for all those funny nights at the Caf'e Moulin Joly. Thanks too to the Uruguayan research community in Computer Science (specially to Cristina Cornes and Alberto Pardo) w
The visitor pattern as a reusable, generic, typesafe component
 Proceedings of the 23rd ACM SIGPLAN conference on Objectoriented
"... The VISITOR design pattern shows how to separate the structure of an object hierarchy from the behaviour of traversals over that hierarchy. The pattern is very flexible; this very flexibility makes it difficult to capture the pattern formally. We show how to capture the essence of the VISITOR patter ..."
Abstract

Cited by 16 (4 self)
 Add to MetaCart
(Show Context)
The VISITOR design pattern shows how to separate the structure of an object hierarchy from the behaviour of traversals over that hierarchy. The pattern is very flexible; this very flexibility makes it difficult to capture the pattern formally. We show how to capture the essence of the VISITOR pattern as a reusable software library, by using advanced type system features appearing in modern objectoriented languages such as Scala. We preserve typesafety statically: no reflection or similar mechanisms are used. The library is generic, in two senses: by types (the traversal return type and the object hierarchy shape) and by strategy (internal versus external control, imperative versus functional behaviour, orthogonal aspects such as tracing and memoisation). Finally, we propose a generalised datatypelike notation, providing a convenient functional decomposition style in objectoriented languages. 1.
A General Storage Theorem for Integers in CallByName λCalculus
, 1993
"... The notion of storage operator introduced in [5, 6] appears to be an important tool in the study of data types in second order λcalculus. These operators are λterms which simulate callbyvalue in the callbyname strategy, and they can be used in order to modelize assignment instructions. The mai ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
The notion of storage operator introduced in [5, 6] appears to be an important tool in the study of data types in second order λcalculus. These operators are λterms which simulate callbyvalue in the callbyname strategy, and they can be used in order to modelize assignment instructions. The main result about storage operators is that there is a very simple second order type for them, using Gödel's "notnot translation" of classical into intuitionistic logic. We give here a new and simpler proof of a strengthened version of this theorem, which contains all previous results in intuitionistic and in classical logic ([6, 7]), and gives rise to new "storage theorems". Moreover, this result has a simple and intuitive meaning, in terms of realizability.
The GirardReynolds Isomorphism, in
 International Symposium of Theoretical Aspects of Computer Software
, 2001
"... ..."
(Show Context)
On Formalised Proofs of Termination of Recursive Functions
 In Proceedings of the Int. Conf. on Principles and Practice of Declarative Programming, volume 1702 of LNCS
, 1999
"... In proof checkers and theorem provers (e.g. Coq [4] and ProPre [13]) recursive de nitions of functions are shown to terminate automatically. ..."
Abstract

Cited by 8 (3 self)
 Add to MetaCart
In proof checkers and theorem provers (e.g. Coq [4] and ProPre [13]) recursive de nitions of functions are shown to terminate automatically.
Modular visitor components: A practical solution to the expression families problem
 In ECOOP ’09
, 2009
"... Abstract. The expression families problem can be defined as the problem of achieving reusability and composability across the components involved in a family of related datatypes and corresponding operations over those datatypes. Like the traditional expression problem, adding new components (either ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
(Show Context)
Abstract. The expression families problem can be defined as the problem of achieving reusability and composability across the components involved in a family of related datatypes and corresponding operations over those datatypes. Like the traditional expression problem, adding new components (either variants or operations) should be possible while preserving modular and static typesafety. Moreover, different combinations of components should have different type identities and the subtyping relationships between components should be preserved. By generalizing previous work exploring the connection between typetheoretic encodings of datatypes and visitors, we propose two solutions for this problem in Scala using modular visitor components. These components can be grouped into features that can be easily composed in a featureoriented programming style to obtain customized datatypes and operations. 1
Realizability and parametricity in pure type systems
 In the Proceedings of FoSSaCS 2011 (Saarbruecken
, 2011
"... Abstract. We describe a systematic method to build a logic from any programming language described as a Pure Type System (PTS). The formulas of this logic express properties about programs. We define a parametricity theory about programs and a realizability theory for the logic. The logic is express ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
(Show Context)
Abstract. We describe a systematic method to build a logic from any programming language described as a Pure Type System (PTS). The formulas of this logic express properties about programs. We define a parametricity theory about programs and a realizability theory for the logic. The logic is expressive enough to internalize both theories. Thanks to the PTS setting, we abstract most idiosyncrasies specific to particular type theories. This confers generality to the results, and reveals parallels between parametricity and realizability. 1