Results 1 -
5 of
5
Higher-Order, Linear, Concurrent Constraint Programming
, 1992
"... We present a very simple and powerful framework for indeterminate, asynchronous, higher-order computation based on the formula-as-agent and proof-ascomputation interpretation of (higher-order) linear logic [Gir87]. The framework significantly refines and extends the scope of the concurrent constrai ..."
Abstract
-
Cited by 28 (5 self)
- Add to MetaCart
We present a very simple and powerful framework for indeterminate, asynchronous, higher-order computation based on the formula-as-agent and proof-ascomputation interpretation of (higher-order) linear logic [Gir87]. The framework significantly refines and extends the scope of the concurrent constraint programming paradigm [Sar89] in two fundamental ways: (1) by allowing for the consumption of information by agents it permits a direct modelling of (indeterminate) state change in a logical framework, and (2) by admitting simply-typed -terms as dataobjects, it permits the construction, transmission and application of (abstractions of) programs at run-time. Much more dramatically, however, the framework can be seen as presenting higher-order (and if desired, constraint-enriched) versions of a variety of other asynchronous concurrent systems, including the asynchronous ("input guarded") fragment of the (first-order) ß-calculus, Hewitt's actors formalism, (abstract forms of) Gelernter's Lin...
Admissibility of Fixpoint Induction over Partial Types
- Automated deduction --- CADE-15. Lect. Notes in Comp. Sci
, 1998
"... Partial types allow the reasoning about partial functions in type theory. The partial functions of main interest are recursively computed functions, which are commonly assigned types using fixpoint induction. However, fixpoint induction is valid only on admissible types. Previous work has shown many ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
Partial types allow the reasoning about partial functions in type theory. The partial functions of main interest are recursively computed functions, which are commonly assigned types using fixpoint induction. However, fixpoint induction is valid only on admissible types. Previous work has shown many types to be admissible, but has not shown any dependent products to be admissible. Disallowing recursion on dependent product types substantially reduces the expressiveness of the logic; for example, it prevents much reasoning about modules, objects and algebras. In this paper I present two new tools, predicate-admissibility and monotonicity, for showing types to be admissible. These tools show a wide class of types to be admissible; in particular, they show many dependent products to be admissible. This alleviates difficulties in applying partial types to theorem proving in practice. I also present a general least upper bound theorem for fixed points with regard to a computational approxim...
Programming Language Semantics in Foundational Type Theory
- In Proc. the IFIP TC2/WG2.2,2.3 International Conference on Programming Concepts and Methods (PROCOMET’98
, 1996
"... There are compelling benefits to using foundational type theory as a framework for programming language semantics. I give a semantics of an expressive programming calculus in the foundational type theory of Nuprl. Previous typetheoretic semantics have used less expressive type theories, or have sacr ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
There are compelling benefits to using foundational type theory as a framework for programming language semantics. I give a semantics of an expressive programming calculus in the foundational type theory of Nuprl. Previous typetheoretic semantics have used less expressive type theories, or have sacrificed important programming constructs such as recursion and modules. The primary mechanisms of this semantics are partial types, for typing recursion, set types, for encoding power and singleton kinds, which are used for subtyping and module programming, and very dependent function types, for encoding signatures. Keywords Semantics, program verification, type theory, functional programming 1 INTRODUCTION Type theory has become a popular framework for formal reasoning in computer science and has formed the basis for a number of automated deduction systems, including Automath, Nuprl, HOL and Coq, among others. In addition to formalizing mathematics, these systems are widely used for the a...
An Explicit Natural Deduction
, 1998
"... The typed -calculus and the natural deduction are isomorph. There is a mapping (the Curry-Howard's isomorphism) between each others. This paper shows that the typed calculi with explicit substitutions are isomorph to a logical deduction system which is equivalent to the natural deduction. This logic ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The typed -calculus and the natural deduction are isomorph. There is a mapping (the Curry-Howard's isomorphism) between each others. This paper shows that the typed calculi with explicit substitutions are isomorph to a logical deduction system which is equivalent to the natural deduction. This logical formalism inherits the explicit substitutions properties: confluence on open terms, first-order calculus and no PSN. 1 Introduction What is called in mathematics a proof or a demonstration is in fact a more or less informal speech which is founded on some axioms and which follows the greek logic tradition. The aim of the demonstration theory is to supply a formal framework in order to describe a raisoning; the proof becomes a rigorous object. It can be handled like any other mathematical object. In a proof, we have to distinguish what is proved from the demonstration itself. In the following, we will use formalisms where the proved objects are propositional formulas 1 . More precisely,...
A clocked denotational semantics for Lucid-Synchrone in COQ
, 2001
"... Synchronous languages [Hal93] have been designed to help in the conception of reactive systems, especially critical reactive systems (planes, power plants control...). Synchrony is a program property which ensures bounded reaction-time and memory at execution. Synchronous languages statically che ..."
Abstract
- Add to MetaCart
Synchronous languages [Hal93] have been designed to help in the conception of reactive systems, especially critical reactive systems (planes, power plants control...). Synchrony is a program property which ensures bounded reaction-time and memory at execution. Synchronous languages statically check this property. However, in a critical context, it may be needed to have it formally proved, or more generally to prove program properties. In this work we are interested in Lucid-Synchrone [PCCH01] (LS for short), a data-ow synchronous language. We present here a natural and shallow embedding of LS into the Coq proof assistant. This embedding concerns both the dynamic and the static semantics of the language, such that synchrony analysis is obtained for free. Moreover, it gives us a denotational semantics of LS in Coq and is thus a good starting point for designing a prover for LS programs in Coq, following [Fil99, Par95] approach. This semantics can also be used to experiment with the language: we have used it here to propose a notion of recursive functions for LS, as a generalization of recursive streams. The main originality of this work is to apply the \clocks as types" paradigm (see [Cas92]) in the design of a formal semantics for a synchronous language. This paradigm consists in expressing static synchronization constraints with a restricted form of dependent types. We show here that such a type system is a subsystem of Coq type system. This paper is an extended version of [BH01]. 2 CONTENTS Contents 1

