Results 1 
6 of
6
Ordered Linear Logic and Applications
, 2001
"... This work is dedicated to my parents. Acknowledgments Firstly, and foremost, I would like to thank my principal advisor, Frank Pfenning, for his patience with me, and for teaching me most of what I know about logic and type theory. I would also like to acknowledge some useful discussions with Kevin ..."
Abstract

Cited by 35 (0 self)
 Add to MetaCart
This work is dedicated to my parents. Acknowledgments Firstly, and foremost, I would like to thank my principal advisor, Frank Pfenning, for his patience with me, and for teaching me most of what I know about logic and type theory. I would also like to acknowledge some useful discussions with Kevin Watkins which led me to simplify some of this work. Finally, I would like to thank my other advisor, John Reynolds, for all his kindness and support over the last five years. Abstract This thesis introduces a new logical system, ordered linear logic, which combines reasoning with unrestricted, linear, and ordered hypotheses. The logic conservatively extends (intuitionistic) linear logic, which contains both unrestricted and linear hypotheses, with a notion of ordered hypotheses. Ordered hypotheses must be used exactly once, subject to the order in which they were assumed (i.e., their order cannot be changed during the course of a derivation). This ordering constraint allows for logical representations of simple data structures such as stacks and queues. We construct ordered linear logic in the style of MartinL"of from the basic notion of a hypothetical judgement. We then show normalization for the system by constructing a sequent calculus presentation and proving cutelimination of the sequent system.
Tabled HigherOrder Logic Programming
 In 20th International Conference on Automated Deduction
, 2003
"... Elf is a general metalanguage for the specification and implementation of logical systems in the style of the logical framework LF. Based on a logic programming interpretation, it supports executing logical systems and reasoning with and about them, thereby reducing the effort required for each ..."
Abstract

Cited by 26 (11 self)
 Add to MetaCart
Elf is a general metalanguage for the specification and implementation of logical systems in the style of the logical framework LF. Based on a logic programming interpretation, it supports executing logical systems and reasoning with and about them, thereby reducing the effort required for each particular logical system. The traditional logic programming paradigm is extended by replacing firstorder terms with dependently typed terms and allowing implication and universal quantification in the bodies of clauses. These higherorder features allow us to model concisely and elegantly conditions on variables and the discharge of assumptions which are prevalent in many logical systems. However, many specifications are not executable under the traditional logic programming semantics and performance may be hampered by redundant computation. To address these problems, I propose a tabled higherorder logic programming interpretation for Elf. Some redundant computation is eliminated by memoizing subcomputation and reusing its result later. If we do not distinguish different proofs for a property, then search based on tabled logic programming is complete and terminates for programs with bounded recursion. In this proposal, I present a prooftheoretical characterization for tabled higherorder logic programming. It is the basis of the implemented prototype for tabled logic programming interpreter for Elf. Preliminary experiments indicate that many more logical specifications are executable under the tabled semantics. In addition, tabled computation leads to more efficient execution of programs. The goal of the thesis is to demonstrate that tabled logic programming allows us to efficiently automate reasoning with and about logical systems in the logical f...
Nominal logic programming
, 2006
"... Nominal logic is an extension of firstorder logic which provides a simple foundation for formalizing and reasoning about abstract syntax modulo consistent renaming of bound names (that is, αequivalence). This article investigates logic programming based on nominal logic. This technique is especial ..."
Abstract

Cited by 23 (8 self)
 Add to MetaCart
Nominal logic is an extension of firstorder logic which provides a simple foundation for formalizing and reasoning about abstract syntax modulo consistent renaming of bound names (that is, αequivalence). This article investigates logic programming based on nominal logic. This technique is especially wellsuited for prototyping type systems, proof theories, operational semantics rules, and other formal systems in which bound names are present. In many cases, nominal logic programs are essentially literal translations of “paper” specifications. As such, nominal logic programming provides an executable specification language for prototyping, communicating, and experimenting with formal systems. We describe some typical nominal logic programs, and develop the modeltheoretic, prooftheoretic, and operational semantics of such programs. Besides being of interest for ensuring the correct behavior of implementations, these results provide a rigorous foundation for techniques for analysis and reasoning about nominal logic programs, as we illustrate via two examples.
15819K: Logic Programming Lecture 5 Backtracking
, 2006
"... In this lecture we refine the operational semantics further to explicit represent backtracking. We prove this formulation to be sound. From earlier examples it should be clear that it can no longer be complete. 5.1 Disjunction and Falsehood When our aim was to explicitly represent lefttoright subg ..."
Abstract
 Add to MetaCart
In this lecture we refine the operational semantics further to explicit represent backtracking. We prove this formulation to be sound. From earlier examples it should be clear that it can no longer be complete. 5.1 Disjunction and Falsehood When our aim was to explicitly represent lefttoright subgoal selection, we introduced conjunction and truth as our first logical connectives. This allowed us to make the order explicit in the propositions we were interpreting. In this lecture we would like to make the choice of rule explicit. For this purpose, it is convenient to introduce two new logical connectives: disjunction A ∨ B and falsehood ⊥. They are easily defined by their introduction rules as usual. A true A ∨ B true ∨I1 B true A ∨ B true ∨I2 No ⊥I rule We can think of falsehood as a disjunction between zero alternatives; therefore, there are zero introduction rules. 5.2 Normal Forms for Programs Sometimes it is expedient to give the semantics of programs assuming a kind of normal form. The presentation from the previous lecture would have been slightly simpler if we had presupposed an explicit conjunction form for programs where each inference rule has exactly one premiss. The
Prooftheoretic and Higherorder Extensions of Logic Programming
"... Abstract We review the Italian contribution to prooftheoretic and higherorder extensions of logic programming; this originated from the realization that Horn clauses lacked standard abstraction mechanisms such as higherorder programming, scoping constructs and forms of information hiding. Those e ..."
Abstract
 Add to MetaCart
Abstract We review the Italian contribution to prooftheoretic and higherorder extensions of logic programming; this originated from the realization that Horn clauses lacked standard abstraction mechanisms such as higherorder programming, scoping constructs and forms of information hiding. Those extensions were based on the Deduction and Computation paradigm as formulated in Miller et al’s approach [51], which built logic programming around the notion of focused uniform proofs The Italian contribution has been both foundational and applicative, in terms of language extensions, implementation techniques and usage of the new features to capture various computation models. We argue that the emphasis has now moved to the theory and practice of logical frameworks, carrying with it a better understanding of the foundations of proof search. 1 Introduction and
Classification of recursive functions into polynomial and superpolynomial complexity classes
"... Abstract. We present a decidable and sound criterion for classifying recursive functions over higherorder data structures into polynomial and superpolynomial complexity classes generalizing the seminal results by Bellantoni and Cook [1] and Leivant [4] to complex structural datatypes. The criterion ..."
Abstract
 Add to MetaCart
Abstract. We present a decidable and sound criterion for classifying recursive functions over higherorder data structures into polynomial and superpolynomial complexity classes generalizing the seminal results by Bellantoni and Cook [1] and Leivant [4] to complex structural datatypes. The criterion is complete for the special case of binary strings; whether it is also complete for arbitrary higherorder data structures remains an open problem. Logic programming serves as the underlying model of computation and our results apply to the Horn fragment as well to the fragment of hereditary Harrop formulas. 1