Results 11 - 20
of
27
A Theory of Hygienic Macros
"... Abstract. Hygienic macro systems, such as Scheme’s, automatically rename variables to prevent unintentional variable capture—in short, they “just work. ” Yet hygiene has never been formally presented as a specification rather than an algorithm. According to folklore, the definition of hygienic macro ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Abstract. Hygienic macro systems, such as Scheme’s, automatically rename variables to prevent unintentional variable capture—in short, they “just work. ” Yet hygiene has never been formally presented as a specification rather than an algorithm. According to folklore, the definition of hygienic macro expansion hinges on the preservation of alphaequivalence. But the only known notion of alpha-equivalence for programs with macros depends on the results of macro expansion! We break this circularity by introducing explicit binding specifications into the syntax of macro definitions, permitting a definition of alpha-equivalence independent of expansion. We define a semantics for a first-order subset of Scheme-like macros and prove hygiene as a consequence of confluence. The subject of macro hygiene is not at all decided, and more research is needed to precisely state what hygiene formally means and [precisely which] assurances it provides. —Oleg Kiselyov [1]
A Formalization of a Concurrent Object Calculus Up to Alpha-Conversion
, 1999
"... We experiment a method for representing a concurrent object calculus in the Calculus of Inductive Constructions. Terms are first defined in de Bruijn style, then names are re-introduced in binders. The terms of the calculus are formalized in the mechanized logic by suitable subsets of the de Bruijn ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
We experiment a method for representing a concurrent object calculus in the Calculus of Inductive Constructions. Terms are first defined in de Bruijn style, then names are re-introduced in binders. The terms of the calculus are formalized in the mechanized logic by suitable subsets of the de Bruijn terms; namely those whose de Bruijn indices are relayed beyond the scene. The ff-equivalence relation is the Leibnitz equality and the substitution functions can de defined as sets of partial rewriting rules on these terms. We prove induction schemes for both the terms and some properties of the calculus which internalize the renaming of bound variables . We show that, despite that the terms which formalize the calculus are not generated by a last fixed point relation, we can prove the desire inversion lemmas. We formalize the computational part of the semantic and a simple type system of the calculus. At least, we prove a subject reduction theorem and see that the specications and proofs have the nice feature of not mixing de Bruijn technical manipulations with real proofs.
Coding binding and substitution explicitly in isabelle
- University of Cambridge Computer Laboratory
, 1995
"... Logical frameworks provide powerful methods of encoding object-logical binding and substitution using meta-logical λ-abstraction and application. However, there are some cases in which these methods are not general enough: in such cases object-logical binding and substitution must be explicitly code ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Logical frameworks provide powerful methods of encoding object-logical binding and substitution using meta-logical λ-abstraction and application. However, there are some cases in which these methods are not general enough: in such cases object-logical binding and substitution must be explicitly coded. McKinna and Pollack [MP93] give a novel formalization of binding, where they use it principally to prove meta-theorems of Type Theory. We analyse the practical use of McKinna-Pollack binding in Isabelle object-logics, and illustrate its use with a simple example logic. 1
Basic category theory for models of syntax, Course notes for
- Summer School on Generic Programming, SSGP'02
, 2002
"... Abstract. These notes form the basis of four lectures given at the Summer ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Abstract. These notes form the basis of four lectures given at the Summer
Strong Induction Principles in the Locally Nameless Representation of Binders (Preliminary Notes)
"... Abstract. When using the locally nameless representation for binders, proofs by rule induction over an inductively defined relation traditionally involve a weak and strong version of this relation, and a proof that both versions derive the same judgements. In these notes we demonstrate with examples ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Abstract. When using the locally nameless representation for binders, proofs by rule induction over an inductively defined relation traditionally involve a weak and strong version of this relation, and a proof that both versions derive the same judgements. In these notes we demonstrate with examples that it is often sufficient to define just the weak version, using the infrastructure provided by the nominal Isabelle package to automatically derive (in a uniform way) a strong induction principle for this weak version. The derived strong induction principle offers a similar convenience in induction proofs as the traditional approach using weak and strong versions of the definition. From our experience, we conjecture that our technique can be used in many rule and structural induction proofs. 1
Higher Order Abstract Syntax in Type Theory
"... We develop a general tool to formalize higher-order languages and reason about them in a proof-tool based on type theory (Coq). A language is specified by its signature, which consists of sets of sort and operation names and typing rules. These rules prescribe the sorts and bindings of each operat ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
We develop a general tool to formalize higher-order languages and reason about them in a proof-tool based on type theory (Coq). A language is specified by its signature, which consists of sets of sort and operation names and typing rules. These rules prescribe the sorts and bindings of each operation. An algebra of terms is associated to a signature, using de Bruijn notation. Then a higher-order notation is built on top of the de Bruijn level, so that the user can work with meta-variables instead of de Bruijn indices. We also provide recursion and induction principles formulated directly on the higher-order syntax. This generalizes work on the Hybrid approach to higher-order syntax in Isabelle and our earlier work on a constructive extension to Hybrid formalized in Coq. In particular, a large class of theorems that must be repeated for each object language in Hybrid is done once in our new approach and can be applied directly to each object language.
A Deep Embedding of Z_C in Isabelle/HOL
, 2001
"... This report describes a deep embedding of the logic ZC [HR00] in Isabelle /HOL. The development is based on a general theory of de Bruijn terms. Wellformed terms, propositions and judgements are represented as inductive sets. The embedding is used to prove elementary properties of ZC such as uniquen ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
This report describes a deep embedding of the logic ZC [HR00] in Isabelle /HOL. The development is based on a general theory of de Bruijn terms. Wellformed terms, propositions and judgements are represented as inductive sets. The embedding is used to prove elementary properties of ZC such as uniqueness of types, type inhabitation and that elements of judgements are wellformed propositions 1 De Bruijn Terms The representation of logical syntax in Isabelle/HOL will be based on a polymorphic datatype dbterm of de Bruijn terms. This development follows the example of A. Gordon [Gor94] who constructed a similar theory for the HOL system. The datatype dbterm is independent of ZC and can be used as a foundation for deep embeddings in general. For other HOL representations of terms see [Owe95] and [Von95].
The Representational Adequacy of HYBRID
"... The Hybrid system (Ambler et al., 2002b), implemented within Isabelle/HOL, allows object logics to be represented using higher order abstract syntax (HOAS), and reasoned about using tactical theorem proving in general and principles of (co)induction in particular. The form of HOAS provided by Hybrid ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
The Hybrid system (Ambler et al., 2002b), implemented within Isabelle/HOL, allows object logics to be represented using higher order abstract syntax (HOAS), and reasoned about using tactical theorem proving in general and principles of (co)induction in particular. The form of HOAS provided by Hybrid is essentially a lambda calculus with constants. Of fundamental interest is the form of the lambda abstractions provided by Hybrid. The user has the convenience of writing lambda abstractions using names for the binding variables. However each abstraction is actually a definition of a de Bruijn expression, and Hybrid can unwind the user’s abstractions (written with names) to machine friendly de Bruijn expressions (without names). In this sense the formal system contains a hybrid of named and nameless bound variable notation. In this paper, we present a formal theory in a logical framework which can be viewed as a model of core Hybrid, and state and prove that the model is representationally adequate for HOAS. In particular, it is the canonical translation function from λ-expressions to Hybrid that witnesses adequacy. We also prove two results that characterise how Hybrid represents certain classes of λ-expressions. The Hybrid system contains a number of different syntactic classes of expression, and associated abstraction mechanisms. Hence this paper also aims to provide a self-contained theoretical introduction to both the syntax and key ideas of the system; background in automated theorem proving is not essential, although this paper will be of considerable interest to those who wish to work with Hybrid in Isabelle/HOL.
Formalization of a Concurrent Object Calculus Up to Alpha-Conversion
, 1999
"... We present a formalization of a concurrent object calculus in the Calculus of Inductive Constructions. We use de Bruijn technique in an intermediate syntax, but de Bruijn indices do not appear in the final formalization of the terms of the calculus, which are still dened up to ff-conversion. We deri ..."
Abstract
- Add to MetaCart
We present a formalization of a concurrent object calculus in the Calculus of Inductive Constructions. We use de Bruijn technique in an intermediate syntax, but de Bruijn indices do not appear in the final formalization of the terms of the calculus, which are still dened up to ff-conversion. We derive substitution rewriting rules and an inductive principle on the subset of the terms which formalize the calculus. Once a certain amount of preliminary work has been done on the intermediate syntax this induction theorem makes possible natural proofs which do not deal with de Bruijn number.

