Results 1  10
of
23
A Proof Theory for Generic Judgments
, 2003
"... this paper, we do this by adding the #quantifier: its role will be to declare variables to be new and of local scope. The syntax of the formula # x.B is like that for the universal and existential quantifiers. Following Church's Simple Theory of Types [Church 1940], formulas are given the type ..."
Abstract

Cited by 61 (14 self)
 Add to MetaCart
this paper, we do this by adding the #quantifier: its role will be to declare variables to be new and of local scope. The syntax of the formula # x.B is like that for the universal and existential quantifiers. Following Church's Simple Theory of Types [Church 1940], formulas are given the type o, and for all types # not containing o, # is a constant of type (# o) o. The expression # #x.B is ACM Transactions on Computational Logic, Vol. V, No. N, October 2003. 4 usually abbreviated as simply # x.B or as if the type information is either simple to infer or not important
The Abella interactive theorem prover (system description
 In Fourth International Joint Conference on Automated Reasoning
, 2008
"... Abella [3] is an interactive system for reasoning about aspects of object languages that have been formally presented through recursive rules based on syntactic structure. Abella utilizes a twolevel logic approach to specification and reasoning. One level is defined by a specification logic which s ..."
Abstract

Cited by 24 (4 self)
 Add to MetaCart
Abella [3] is an interactive system for reasoning about aspects of object languages that have been formally presented through recursive rules based on syntactic structure. Abella utilizes a twolevel logic approach to specification and reasoning. One level is defined by a specification logic which supports a transparent
A Proof Search Specification of the πCalculus
 IN 3RD WORKSHOP ON THE FOUNDATIONS OF GLOBAL UBIQUITOUS COMPUTING
, 2004
"... We present a metalogic that contains a new quantifier (for encoding "generic judgment") and inference rules for reasoning within fixed points of a given specification. We then specify the operational semantics and bisimulation relations for the finite πcalculus within this metalogic. Since we ..."
Abstract

Cited by 21 (11 self)
 Add to MetaCart
We present a metalogic that contains a new quantifier (for encoding "generic judgment") and inference rules for reasoning within fixed points of a given specification. We then specify the operational semantics and bisimulation relations for the finite πcalculus within this metalogic. Since we
The Bedwyr system for model checking over syntactic expressions
 21th Conference on Automated Deduction, LNAI 4603, 391–397
, 2007
"... Bedwyr is a generalization of logic programming that allows model checking directly on syntactic expressions possibly containing bindings. This system, written in OCaml, is a direct implementation of two recent advances in the theory of proof search. The first is centered on the fact that both finit ..."
Abstract

Cited by 21 (12 self)
 Add to MetaCart
Bedwyr is a generalization of logic programming that allows model checking directly on syntactic expressions possibly containing bindings. This system, written in OCaml, is a direct implementation of two recent advances in the theory of proof search. The first is centered on the fact that both finite success and finite failure can be captured in the sequent calculus by incorporating inference rules for definitions that allow fixed points to be explored. As a result, proof search in such a sequent calculus can capture simple model checking problems as well as may and must behavior in operational semantics. The second is that higherorder abstract syntax is directly supported using termlevel λbinders and the quantifier known as ∇. These features allow reasoning directly on expressions containing bound variables. 2
Combining generic judgments with recursive definitions
 in "23th Symp. on Logic in Computer Science", F. PFENNING (editor), IEEE Computer Society Press, 2008, p. 33–44, http://www.lix.polytechnique.fr/Labo/Dale.Miller/papers/lics08a.pdf US
"... Many semantical aspects of programming languages are specified through calculi for constructing proofs: consider, for example, the specification of structured operational semantics, labeled transition systems, and typing systems. Recent proof theory research has identified two features that allow di ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
Many semantical aspects of programming languages are specified through calculi for constructing proofs: consider, for example, the specification of structured operational semantics, labeled transition systems, and typing systems. Recent proof theory research has identified two features that allow direct, logicbased reasoning about such descriptions: the treatment of atomic judgments as fixed points (recursive definitions) and an encoding of binding constructs via generic judgments. However, the logics encompassing these two features have thus far treated them orthogonally. In particular, they have not contained the ability to form definitions of objectlogic properties that themselves depend on an intrinsic treatment of binding. We propose a new and simple integration of these features within an intuitionistic logic enhanced with induction over natural numbers and we show that the resulting logic is consistent. The pivotal part of the integration allows recursive definitions to define generic judgments in general and not just the simpler atomic judgments that are traditionally allowed. The usefulness of this logic is illustrated by showing how it can provide elegant treatments of objectlogic contexts that appear in proofs involving typing calculi and arbitrarily cascading substitutions in reducibility arguments.
Compiler Construction in Higher Order Logic Programming
 In Practical Aspects of Declarative Languages
, 2002
"... This paper describes a general method of compiler implementation using higher order abstract syntax and logic programming. A working compiler written in Prolog is used to demonstrate this method. ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
This paper describes a general method of compiler implementation using higher order abstract syntax and logic programming. A working compiler written in Prolog is used to demonstrate this method.
A RuleBased Language for Programming Software Updates
 In 3rd ACM SIGPLAN Workshop on RuleBased Programming
, 2002
"... We describe the design of a rulebased language for expressing changes to Haskell programs in a systematic and reliable way. The update language essentially offers update commands for all constructs of the object language (a subset of Haskell). The update language can be translated into a core calcu ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
We describe the design of a rulebased language for expressing changes to Haskell programs in a systematic and reliable way. The update language essentially offers update commands for all constructs of the object language (a subset of Haskell). The update language can be translated into a core calculus consisting of a small set of basic updates and update combinators. The key construct of the core calculus is a scope update mechanism that allows (and enforces) update specifications for the definition of a symbol together with all of its uses. The type of an update program is given by the possible type changes it can cause for an object programs. We have developed a typechange inference system to automatically infer type changes for updates. Updates for which a type change can be successfully inferred and that satisfy an additional structural condition can be shown to preserve type correctness of object programs. In this paper we define the Haskell Update Language HULA and give a translation into the core update calculus. We illustrate HULA and its translation into the core calculus by several examples.
Representing and reasoning with operational semantics
 In: Proceedings of the Joint International Conference on Automated Reasoning
, 2006
"... The operational semantics of programming and specification languages is often presented via inference rules and these can generally be mapped into logic programminglike clauses. Such logical encodings of operational semantics can be surprisingly declarative if one uses logics that directly account ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
The operational semantics of programming and specification languages is often presented via inference rules and these can generally be mapped into logic programminglike clauses. Such logical encodings of operational semantics can be surprisingly declarative if one uses logics that directly account for termlevel bindings and for resources, such as are found in linear logic. Traditional theorem proving techniques, such as unification and backtracking search, can then be applied to animate operational semantic specifications. Of course, one wishes to go a step further than animation: using logic to encode computation should facilitate formal reasoning directly with semantic specifications. We outline an approach to reasoning about logic specifications that involves viewing logic specifications as theories in an objectlogic and then using a metalogic to reason about properties of those objectlogic theories. We motivate the principal design goals of a particular metalogic that has been built for that purpose.
A logic programming language based on binding algebras
 In Proc. Theoretical Aspects of Computer Science (TACS 2001), number 2215 in Lecture
, 2001
"... Abstract. We give a logic programming language based on Fiore, Plotkin and Turi’s binding algebras. In this language, we can use not only firstorder terms but also terms involving variable binding. The aim of this language is similar to Nadathur and Miller’s λProlog, which can also deal with bindin ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
Abstract. We give a logic programming language based on Fiore, Plotkin and Turi’s binding algebras. In this language, we can use not only firstorder terms but also terms involving variable binding. The aim of this language is similar to Nadathur and Miller’s λProlog, which can also deal with binding structure by introducing λterms in higherorder logic. But the notion of binding used here is finer in a sense than the usual λbinding. We explicitly manage names used for binding and treat αconversion with respect to them. Also an important difference is the form of application related to βconversion, i.e. we only allow the form (M x), where x is a (object) variable, instead of usual application (M N). This notion of binding comes from the semantics of binding by the category of presheaves. We firstly give a type theory which reflects this categorical semantics. Then we proceed along the line of firstorder logic programming language, namely, we give a logic of this language, an operational semantics by SLDresolution and unification algorithm for binding terms. 1