Results 11 - 20
of
198
The Theory of LEGO - A Proof Checker for the Extended Calculus of Constructions
, 1994
"... LEGO is a computer program for interactive typechecking in the Extended Calculus of Constructions and two of its subsystems. LEGO also supports the extension of these three systems with inductive types. These type systems can be viewed as logics, and as meta languages for expressing logics, and LEGO ..."
Abstract
-
Cited by 65 (10 self)
- Add to MetaCart
LEGO is a computer program for interactive typechecking in the Extended Calculus of Constructions and two of its subsystems. LEGO also supports the extension of these three systems with inductive types. These type systems can be viewed as logics, and as meta languages for expressing logics, and LEGO is intended to be used for interactively constructing proofs in mathematical theories presented in these logics. I have developed LEGO over six years, starting from an implementation of the Calculus of Constructions by G erard Huet. LEGO has been used for problems at the limits of our abilities to do formal mathematics. In this thesis I explain some aspects of the meta-theory of LEGO's type systems leading to a machine-checked proof that typechecking is decidable for all three type theories supported by LEGO, and to a verified algorithm for deciding their typing judgements, assuming only that they are normalizing. In order to do this, the theory of Pure Type Systems (PTS) is extended and f...
A Typed Pattern Calculus
- ACM Trans. Program. Lang. Syst
, 1996
"... The theory of programming with pattern-matching function definitions has been studied mainly in the framework of first-order rewrite systems. We present a typed functional calculus that emphasizes the strong connection between the structure of whole pattern definitions and their types. In this calcu ..."
Abstract
-
Cited by 62 (15 self)
- Add to MetaCart
The theory of programming with pattern-matching function definitions has been studied mainly in the framework of first-order rewrite systems. We present a typed functional calculus that emphasizes the strong connection between the structure of whole pattern definitions and their types. In this calculus type-checking guarantees the absence of runtime errors caused by non-exhaustive pattern-matching definitions. Its operational semantics is deterministic in a natural way, without the imposition of ad-hoc solutions such as clause order or "best fit". In the spirit of the Curry-Howard isomorphism, we design the calculus as a computational interpretation of the Gentzen sequent proofs for the intuitionistic propositional logic. We prove the basic properties connecting typing and evaluation: subject reduction and strong normalization. We believe that this calculus offers a rational reconstruction of the pattern-matching features found in successful functional languages. CNRS and Laboratoire...
Translucent Sums: A Foundation for Higher-Order Module Systems
, 1997
"... The ease of understanding, maintaining, and developing a large program depends crucially on how it is divided up into modules. The possible ways a program can be divided are constrained by the available modular programming facilities ("module system") of the programming language being used. Experien ..."
Abstract
-
Cited by 53 (0 self)
- Add to MetaCart
The ease of understanding, maintaining, and developing a large program depends crucially on how it is divided up into modules. The possible ways a program can be divided are constrained by the available modular programming facilities ("module system") of the programming language being used. Experience with the Standard-ML module system has shown the usefulness of functions mapping modules to modules and modules with module subcomponents. For example, functions over modules permit abstract data types (ADTs) to be parameterized by other ADTs, and submodules permit modules to be organized hierarchically. Module systems with such facilities are called higher-order, by analogy with higher-order functions. Previous higher-order module systems can be classified as either opaque or transparent. Opaque systems totally obscure information about the identity of type components of modules, often resulting in overly abstract types. This loss of type identities precludes most interesting uses of hi...
Concurrent Transition Systems
- Theoretical Computer Science
, 1989
"... : Concurrent transition systems (CTS's), are ordinary nondeterministic transition systems that have been equipped with additional concurrency information, specified in terms of a binary residual operation on transitions. Each CTS C freely generates a complete CTS or computation category C , whose ..."
Abstract
-
Cited by 40 (5 self)
- Add to MetaCart
: Concurrent transition systems (CTS's), are ordinary nondeterministic transition systems that have been equipped with additional concurrency information, specified in terms of a binary residual operation on transitions. Each CTS C freely generates a complete CTS or computation category C , whose arrows are equivalence classes of finite computation sequences, modulo a congruence induced by the concurrency information. The categorical composition on C induces a "prefix" partial order on its arrows, and the computations of C are conveniently defined to be the ideals of this partial order. The definition of computations as ideals has some pleasant properties, one of which is that the notion of a maximal ideal in certain circumstances can serve as a replacement for the more troublesome notion of a fair computation sequence. To illustrate the utility of CTS's, we use them to define and investigate a dataflow-like model of concurrent computation. The model consists of machines, which ...
The Call-by-Need Lambda Calculus
- Journal of Functional Programming
, 1994
"... We present a calculus that captures the operational semantics of call-by-need. The call-by-need lambda calculus is confluent, has a notion of standard reduction, and entails the same observational equivalence relation as the call-by-name calculus. The system can be formulated with or without explici ..."
Abstract
-
Cited by 36 (2 self)
- Add to MetaCart
We present a calculus that captures the operational semantics of call-by-need. The call-by-need lambda calculus is confluent, has a notion of standard reduction, and entails the same observational equivalence relation as the call-by-name calculus. The system can be formulated with or without explicit let bindings, admits useful notions of marking and developments, and has a straightforward operational interpretation. Introduction The correspondence between call-by-value lambda calculi and strict functional languages (such as the pure subset of Standard ML) is quite good; the correspondence between callby -name lambda calculi and lazy functional languages (such as Miranda or Haskell) is not so good. Call-by-name re-evaluates an argument each time it is used, a prohibitive expense. Thus, many lazy languages are implemented using the call-by-need mechanism proposed by Wadsworth (1971), which overwrites an argument with its value the first time it is evaluated, avoiding the need for any s...
The Realizability Approach to Computable Analysis and Topology
, 2000
"... policies, either expressed or implied, of the NSF, NAFSA, or the U.S. government. ..."
Abstract
-
Cited by 34 (16 self)
- Add to MetaCart
policies, either expressed or implied, of the NSF, NAFSA, or the U.S. government.
Functional Nets
- IN PROC. EUROPEAN SYMPOSIUM ON PROGRAMMING, NUMBER 1782 IN LNCS
, 2000
"... Functional nets combine key ideas of functional programming and Petri nets to yield a simple and general programming notation. They ..."
Abstract
-
Cited by 34 (5 self)
- Add to MetaCart
Functional nets combine key ideas of functional programming and Petri nets to yield a simple and general programming notation. They
A lambda calculus for quantum computation with classical control
- IN PROCEEDINGS OF THE 7TH INTERNATIONAL CONFERENCE ON TYPED LAMBDA CALCULI AND APPLICATIONS (TLCA), VOLUME 3461 OF LECTURE NOTES IN COMPUTER SCIENCE
, 2005
"... ..."
A visual environment for developing context-sensitive term rewriting systems
- In Proceedings of the International Conference on Rewriting Techniques and Applications (RTA
, 2004
"... Abstract. Over the past decade, researchers have found context-sensitive term-rewriting semantics to be powerful and expressive tools for modeling programming languages, particularly in establishing type soundness proofs. Unfortunately, developing such semantics is an error-prone activity. To addres ..."
Abstract
-
Cited by 34 (10 self)
- Add to MetaCart
Abstract. Over the past decade, researchers have found context-sensitive term-rewriting semantics to be powerful and expressive tools for modeling programming languages, particularly in establishing type soundness proofs. Unfortunately, developing such semantics is an error-prone activity. To address that problem, we have designed PLT Redex, an embedded domain-specific language that helps users interactively create and debug context-sensitive term-rewriting systems. We introduce the tool with a series of examples and discuss our experience using it in courses and developing an operational semantics for R 5 RS Scheme. 1

