Results 1 -
6 of
6
Logical and Computational Aspects of Programming with Sets/Bags/Lists
- In LNCS 510: Proceedings of 18th International Colloquium on Automata, Languages, and Programming
, 1991
"... . We study issues that arise in programming with primitive recursion over non-free datatypes such as lists, bags and sets. Programs written in this style can lack a meaning in the sense that their outputs may be sensitive to the choice of input expression. We are, thus, naturally lead to a set-theor ..."
Abstract
-
Cited by 79 (2 self)
- Add to MetaCart
. We study issues that arise in programming with primitive recursion over non-free datatypes such as lists, bags and sets. Programs written in this style can lack a meaning in the sense that their outputs may be sensitive to the choice of input expression. We are, thus, naturally lead to a set-theoretic denotational semantics with partial functions. We set up a logic for reasoning about the definedness of terms and a deterministic and terminating evaluator. The logic is shown to be sound in the model, and its recursion free fragment is shown to be complete for proving definedness of recursion free programs. The logic is then shown to be as strong as the evaluator, and this implies that the evaluator is compatible with the provable equivalence between different set (or bag, or list) expressions . Oftentimes, the same non-free datatype may have different presentations, and it is not clear a priori whether programming and reasoning with the two presentations are equivalent. We formulate t...
The safe lambda calculus
- of Lecture Notes in Computer Science
, 2007
"... Abstract. Safety is a syntactic condition of higher-order grammars that constrains occurrences of variables in the production rules according to their type-theoretic order. In this paper, we introduce the safe lambda calculus, which is obtained by transposing (and generalizing) the safety condition ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
(Show Context)
Abstract. Safety is a syntactic condition of higher-order grammars that constrains occurrences of variables in the production rules according to their type-theoretic order. In this paper, we introduce the safe lambda calculus, which is obtained by transposing (and generalizing) the safety condition to the setting of the simply-typed lambda calculus. In contrast to the original definition of safety, our calculus does not constrain types (to be homogeneous). We show that in the safe lambda calculus, there is no need to rename bound variables when performing substitution, as variable capture is guaranteed not to happen. We also propose an adequate notion of β-reduction that preserves safety. In the same vein as Schwichtenberg’s 1976 characterization of the simply-typed lambda calculus, we show that the numeric functions representable in the safe lambda calculus are exactly the multivariate polynomials; thus conditional is not definable. We also give a characterization of representable word functions. We then study the complexity of deciding beta-eta equality of two safe simply-typed terms and show that this problem is PSPACE-hard. Finally we give a game-semantic analysis of safety: We show that safe terms are denoted by P-incrementally justified strategies. Consequently pointers in the game semantics of safe λ-terms are only necessary from order 4 onwards.
Computational Soundness of a Call by Name Calculus of Recursively-scoped Records
"... ..."
(Show Context)
Christiansen: Call-by-name Calculus of Records and its Basic Properties. Working Papers Series
"... This technical report contains definitions and proofs of properties of a call-byname calculus of records. The purpose of the calculus is to describe unordered collections of (possibly mutually recursive) named components. The system resembles a call-by-value calculus of records defined in [5], but t ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
(Show Context)
This technical report contains definitions and proofs of properties of a call-byname calculus of records. The purpose of the calculus is to describe unordered collections of (possibly mutually recursive) named components. The system resembles a call-by-value calculus of records defined in [5], but the proof method
Church’s Thesis and Functional Programming
- JOURNAL OF UNIVERSAL COMPUTER SCIENCE
, 2004
"... The earliest statement of Church’s Thesis, from Church (1936) p356 is
We now define the notion, already discussed, of an effectively calculable function of positive integers by identifying it with the notion of a recursive function of positive integers (or of a lambda- definable function of positiv ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The earliest statement of Church’s Thesis, from Church (1936) p356 is
We now define the notion, already discussed, of an effectively calculable function of positive integers by identifying it with the notion of a recursive function of positive integers (or of a lambda- definable function of positive integers).
The phrase in parentheses refers to the apparatus which Church had developed to investigate this and other problems in the foundations of mathematics: the calculus of lambda conversion. Both the Thesis and the lambda calculus have been of seminal influence on the development of Computing Science. The main subject of this article is the lambda calculus but I will begin with a brief sketch of the emergence of the Thesis.