Dale Miller, Gopalan NadathurCambridge University Press, 6/11/2012EAN 9780521879408, ISBN10: 052187940XHardcover, 320 pages, 23.5 x 15.8 x 1.9 cmLanguage: EnglishFormal 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.1. First-order terms and representations of data2. First-order horn clauses3. First-order hereditary Harrop formulas4. Typed lambda terms and formulas5. Using quantification at higher-order types6. Mechanisms for structuring large programs7. Computations over λ-terms8. Unification of λ-terms9. Implementing proof systems10. Computations over functional programs11. Encoding a process calculus languageAppendixthe Teyjus system.