Programming with Higher-Order Logic
- Length: 320 pages
- Edition: 1
- Language: English
- Publisher: Cambridge University Press
- Publication Date: 2012-06-11
- ISBN-10: 052187940X
- ISBN-13: 9780521879408
- Sales Rank: #1722758 (See Top 100 Books)
Formal systems that describe computations over syntactic structures occur frequently in computer science. Logic programming provides a natural framework for encoding and animating such systems. However, these systems often embody variable binding, a notion that must be treated carefully at a computational level. This book aims to show that a programming language based on a simply typed version of higher-order logic provides an elegant, declarative means for providing such a treatment. Three broad topics are covered in pursuit of this goal. First, a proof-theoretic framework that supports a general view of logic programming is identified. Second, an actual language called λProlog is developed by applying this view to higher-order logic. Finally, a methodology for programming with specifications is exposed by showing how several computations over formal objects such as logical formulas, functional programs, and λ-terms and π-calculus expressions can be encoded in λProlog.
Table of Contents
1 First-Order Terms and Representations of Data
2 First-Order Horn Clauses
3 First-Order Hereditary Harrop Formulas
4 Typed λ-Terms and Formulas
5 Using Quantification at Higher-Order Types
6 Mechanisms for Structuring Large Programs
7 Computations over λ-Terms
8 Unification of λ-Terms
9 Implementing Proof Systems
10 Computations over Functional Programs
11 Encoding a Process Calculus Language
Appendix: The Teyjus System