Foundations of Logic Programming


Book Description

This book gives an account oC the mathematical Coundations oC logic programming. I have attempted to make the book selC-contained by including prooCs of almost all the results needed. The only prerequisites are some Camiliarity with a logic programming language, such as PROLOG, and a certain mathematical maturity. For example, the reader should be Camiliar with induction arguments and be comCortable manipulating logical expressions. Also the last chapter assumes some acquaintance with the elementary aspects of metric spaces, especially properties oC continuous mappings and compact spaces. Chapter 1 presents the declarative aspects of logic programming. This chapter contains the basic material Crom first order logic and fixpoint theory which will be required. The main concepts discussed here are those oC a logic program, model, correct answer substitution and fixpoint. Also the unification algorithm is discussed in some detail. Chapter 2 is concerned with the procedural semantics oC logic programs. The declarative concepts are implemented by means oC a specialized Corm oC resolution, called SLD-resolution. The main results of this chapter concern the soundness and completeness oC SLD-resolution and the independence oC the computation rule. We also discuss the implications of omitting the occur check from PROLOG implementations. Chapter 3 discusses negation. Current PROLOG systems implement a form of negation by means of the negation as failure rule. The main results of this chapter are the soundness and completeness oC the negation as failure rule.




Types in Logic Programming


Book Description

This collection of original research papers assesses and summarizes the impact of types on logic programming. Type theory is a well-established branch of theoretical computer science that has played an important role in the development of imperative and functional programming languages. This collection of original research papers assesses and summarizes the impact of types on logic programming. It covers all of the major themes in this burgeoning field, including simple types, regular tree types, polymorphic types, subtypes, and dependent types. Language design issues as well as semantics, pragmatics, and applications of types are discussed.The benefits that type considerations have to offer logic programming are being increasingly realized: through type checking many errors can be caught before a program is run, resulting in more reliable programs; types form an expressive basis for module systems, since they prescribe a machine-verifiable interface for the code encapsulated within a module; and types may be used to improve performance of code generated by a compiler. The research in this collection describes these benefits as well as important differences in the impact of types in functional and logic programming.




Program Logics for Certified Compilers


Book Description

This tutorial for graduate students covers practical and theoretical aspects of separation logic with constructions and proofs in Coq.




Programming with Higher-Order Logic


Book Description

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.




Logic Programming with Prolog


Book Description

Written for those who wish to learn Prolog as a powerful software development tool, but do not necessarily have any background in logic or AI. Includes a full glossary of the technical terms and self-assessment exercises.




A 25-Year Perspective on Logic Programming


Book Description

This book celebratesthe 25th anniversaryof GULP—the Italian Associationfor LogicProgramming.Authored by Italian researchersat the leading edge of their ?elds, it presents an up-to-date survey of a broad collection of topics in logic programming, making it a useful reference for both researchers and students. During its 25-year existence, GULP has organised a wide range of national and international activities, including both conferences and summer schools. It has been especially active in supporting and encouraging young researchers, by providing scholarships for GULP events and awarding distinguished disser- tions. WeintheinternationallogicprogrammingcommunitylookuponGULPwith a combination of envy, admiration and gratitude. We are pleased to attend its conferences and summer schools, where we can learn about scienti?c advances, catch up with old friends and meet young students. It is an honour for me to acknowledge our appreciation to GULP for its outstanding contributions to our ?eld and to express our best wishes for its continuing prosperity in the future. March 2010 Robert Kowalski Imperial College London Preface On June 18, 1985, a group of pioneering researchers, including representatives from industry, national research labs, and academia, attended the constituent assembly of the Group of researchers and Users of Logic Programming (GULP) association. That was the starting point of a long adventure in science, that 1 we are still experiencing 25 years later. This volume celebrates this important event.




Foundations of Inductive Logic Programming


Book Description

The state of the art of the bioengineering aspects of the morphology of microorganisms and their relationship to process performance are described in this volume. Materials and methods of the digital image analysis and mathematical modeling of hyphal elongation, branching and pellet formation as well as their application to various fungi and actinomycetes during the production of antibiotics and enzymes are presented.




Constraint Satisfaction in Logic Programming


Book Description

This book tackles classic problems from operations research and circuit design using a logic programming language embedding consistency techniques, a paradigm emerging from artificial intelligence research. Van Hentenryck proposes a new approach to solving discrete combinatorial problems using these techniques.Logic programming serves as a convenient language for stating combinatorial problems, but its "generate and test" paradigm leads to inefficient programs. Van Hentenryck's approach preserves one of the most useful features of logic programming - the duality of its semantics - yet allows a short development time for the programs while preserving most of the efficiency of special purpose programs written in a procedural language.Embedding consistency techniques in logic programming allows for ease and flexibility of programming and short development time because constraint propagation and tree-search programming are abstracted away from the user. It also enables logic programs to be executed efficiently as consistency techniques permit an active use of constraints to remove combinations of values that cannot appear in a solution Van Hentenryck presents a comprehensive overview of this new approach from its theoretical foundations to its design and implementation, including applications to real life combinatorial problems.The ideas introduced in "Constraint Satisfaction in Logic Programming "have been used successfully to solve more than a dozen practical problems in operations research and circuit design, including disjunctive scheduling, warehouse location, cutting stock car sequencing, and microcode labeling problems.Pascal Van Hentenryck is a member of the research staff at the European Computer Industry Research Centre. "Constraint Satisfaction in Logic Programming" is based on research for the Centre's CHIP project. As an outgrowth of this project, a new language (CHIP) that will include consistency techniques has been developed for commercial use. The book is included in the Logic Programming series edited by Ehud Shapiro.




Starting Out with Programming Logic and Design


Book Description

Starting Out with Programming Logic and Design, Third Edition, is a language-independent introductory programming book that orients students to programming concepts and logic without assuming any previous programming experience. In the successful, accessible style of Tony Gaddis’ best-selling texts, useful examples and detail-oriented explanations allow students to become comfortable with fundamental concepts and logical thought processes used in programming without the complication of language syntax. Students gain confidence in their program design skills to transition into more comprehensive programming courses. The book is ideal for a programming logic course taught as a precursor to a language-specific introductory programming course, or for the first part of an introductory programming course.




Mathematical Logic through Python


Book Description

Using a unique pedagogical approach, this text introduces mathematical logic by guiding students in implementing the underlying logical concepts and mathematical proofs via Python programming. This approach, tailored to the unique intuitions and strengths of the ever-growing population of programming-savvy students, brings mathematical logic into the comfort zone of these students and provides clarity that can only be achieved by a deep hands-on understanding and the satisfaction of having created working code. While the approach is unique, the text follows the same set of topics typically covered in a one-semester undergraduate course, including propositional logic and first-order predicate logic, culminating in a proof of Gödel's completeness theorem. A sneak peek to Gödel's incompleteness theorem is also provided. The textbook is accompanied by an extensive collection of programming tasks, code skeletons, and unit tests. Familiarity with proofs and basic proficiency in Python is assumed.