Results 1 
9 of
9
A FormulaeasTypes Notion of Control
 In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages
, 1990
"... The programming language Scheme contains the control construct call/cc that allows access to the current continuation (the current control context). This, in effect, provides Scheme with firstclass labels and jumps. We show that the wellknown formulaeastypes correspondence, which relates a constr ..."
Abstract

Cited by 240 (0 self)
 Add to MetaCart
The programming language Scheme contains the control construct call/cc that allows access to the current continuation (the current control context). This, in effect, provides Scheme with firstclass labels and jumps. We show that the wellknown formulaeastypes correspondence, which relates a constructive proof of a formula ff to a program of type ff, can be extended to a typed Idealized Scheme. What is surprising about this correspondence is that it relates classical proofs to typed programs. The existence of computationally interesting "classical programs"  programs of type ff, where ff holds classically, but not constructively  is illustrated by the definition of conjunctive, disjunctive, and existential types using standard classical definitions. We also prove that all evaluations of typed terms in Idealized Scheme are finite.
Analysis of Security Protocols
 IN CALCULATIONAL SYSTEM DESIGN, SERIES F: COMPUTER AND SYSTEMS SCIENCES
, 1999
"... Several approaches have been developed for analyzing security protocols. Most formal approaches are based on a set of assumptions commonly referred to as the "DolevYao model." In this paper, we use a formalism based on multiset rewriting to describe these modeling assumptions and explain how the ..."
Abstract

Cited by 21 (4 self)
 Add to MetaCart
Several approaches have been developed for analyzing security protocols. Most formal approaches are based on a set of assumptions commonly referred to as the "DolevYao model." In this paper, we use a formalism based on multiset rewriting to describe these modeling assumptions and explain how they are used in protocol analysis.
Mechanically Verifying the Correctness of an Offline Partial Evaluator
, 1995
"... We show that using deductive systems to specify an offline partial evaluator allows its correctness to be mechanically verified. For a mixstyle partial evaluator, we specify bindingtime constraints using a naturaldeduction logic, and the associated program specializer using natural (aka "deducti ..."
Abstract

Cited by 12 (3 self)
 Add to MetaCart
We show that using deductive systems to specify an offline partial evaluator allows its correctness to be mechanically verified. For a mixstyle partial evaluator, we specify bindingtime constraints using a naturaldeduction logic, and the associated program specializer using natural (aka "deductive") semantics. These deductive systems can be directly encoded in the Elf programming language  a logic programming language based on the LF logical framework. The specifications are then executable as logic programs. This provides a prototype implementation of the partial evaluator. Moreover, since deductive system proofs are accessible as objects in Elf, many aspects of the partial evaluation correctness proofs (e.g., the correctness of bindingtime analysis) can be coded in Elf and mechanically verified. This work illustrates the utility of declarative programming and of using deductive systems for defining program specialization systems: by exploiting the logical character of definit...
A Computational Formalization for Partial Evaluation (Extended Version)
, 1996
"... We formalize a partial evaluator for Eugenio Moggi's computational metalanguage. This formalization gives an evaluationorder independent view of bindingtime analysis and program specialization, including a proper treatment of call unfolding, and enables us to express the essence of "controlba ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
We formalize a partial evaluator for Eugenio Moggi's computational metalanguage. This formalization gives an evaluationorder independent view of bindingtime analysis and program specialization, including a proper treatment of call unfolding, and enables us to express the essence of "controlbased bindingtime improvements" for let expressions. Specifically,
Revisiting Kreisel: A Computational Anomaly in the TroelstraSchwichtenberg G3i System
, 1999
"... Assuming a CurryHoward Correspondence view on the TroelstraSchwichtenberg G3i system, we will display a computational anomaly in its proof theory: it equates derivations (read: terms) that should be considered different. The problem comes about from the use of proof theoretical inversion in the ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Assuming a CurryHoward Correspondence view on the TroelstraSchwichtenberg G3i system, we will display a computational anomaly in its proof theory: it equates derivations (read: terms) that should be considered different. The problem comes about from the use of proof theoretical inversion in the intuitionistic setting. However, we will show that, in the end, it is caused by the use of overzealous (explicit) contraction which stems from the system's lack of even a minimal notion of `assumption classes' (with associated implicit contraction). The initial analysis is carried out with a close eye to work on proof theory by Kreisel whose cautionary remarks we ultimately strengthen. 1 Introduction In [2], Kreisel assumes "a neglected [at the time] point of view" on proof theory. Namely, that of considering "Proofs and their representations ... as principal objects of study, not as mere tools for analyzing the consequence relation." In that respect, [2] anticipated a lot of the wor...
A Programming Language for Probabilistic Computation
, 2005
"... As probabilistic computations play an increasing role in solving various problems, researchers have designed probabilistic languages to facilitate their modeling. Most of the existing probabilistic languages, however, focus only on discrete distributions, and there has been little effort to develop ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
As probabilistic computations play an increasing role in solving various problems, researchers have designed probabilistic languages to facilitate their modeling. Most of the existing probabilistic languages, however, focus only on discrete distributions, and there has been little effort to develop probabilistic languages whose expressive power is beyond discrete distributions. This dissertation presents a probabilistic language, called PTP (ProbabilisTic Programming), which supports all kinds of probability distributions.
TypeFree CurryHoward Isomorphisms (A ProofTheory Inspired Exposition of the Isomorphism between the Untyped Calculus with Variable Names and à la de Bruijn)
"... We give an alternative, prooftheory inspired proof of the wellknown result that the untyped calculus presented with variable names and `a la de Bruijn are isomorphic. The two presentations of the calculus come about from two isomorphic logic formalisations by observing that, for the logic in ..."
Abstract
 Add to MetaCart
We give an alternative, prooftheory inspired proof of the wellknown result that the untyped calculus presented with variable names and `a la de Bruijn are isomorphic. The two presentations of the calculus come about from two isomorphic logic formalisations by observing that, for the logic in question, the CurryHoward correspondence is formulaindependent. We identify the exchange rule as the the prooftheoretical difference between the two representations of the systems. 1 Introduction The CurryHoward correspondence relates formal inference systems of symbolic logic to typed like calculi. An inference system for formal, symbolic logic is said to be in Hilbertstyle if, 1 no logical rule (i.e., excluding cut, weakening, etc.) change the set of assumptions. Such systems are also referred to as combinatory logics, in that they typically consist of a set of tautologies (or combinators) which are combined by the, socalled, Modus Ponens rule: A ! B A (Modus Ponens) B For...
Formalization in a Logical Framework
"... Syntax The first task in the formalization of a language in a logical framework is the representation of its expressions. We base the representation on abstract (rather than concrete) syntax in order to expose the essential structure of the object language so we can concentrate on semantics and met ..."
Abstract
 Add to MetaCart
Syntax The first task in the formalization of a language in a logical framework is the representation of its expressions. We base the representation on abstract (rather than concrete) syntax in order to expose the essential structure of the object language so we can concentrate on semantics and metatheory, rather than details of lexical analysis and parsing. The representation technique we use is called higherorder abstract syntax. It is supported by the simplytyped fragment # # of the logical framework LF. The idea of higherorder abstract syntax goes back to Church [Chu40] and has 3.2. HIGHERORDER ABSTRACT SYNTAX 41 since been employed in a number of di#erent contexts and guises. Church observed that once #notation is introduced into a language, all constructs that bind variables can be reduced to #abstraction. If we apply this principle in a setting where we distinguish a metalanguage (the logical framework) from an object language (MiniML, in this example) then variables in the object language are represented by variables in the metalanguage. Variables bound in the object language (by constructs such as case, lam, let,andfix) will be bound by # in the metalanguage. This has numerous advantages and a few disadvantages over the more immediate technique of representing variables by strings; some of the tradeo#s are discussed in Section 3.10. In the development below it is important not to confuse the typing of MiniML expressions with the type system employed by the logical framework, even though some overloading of notation is unavoidable. For example, ":" is used in both systems. For each (abstract) syntactic category of the object language we introduce a new type constant in the metalanguage via a declaration of the form a:type. Thus, in order to repr...