This Festschrift volume, published in memory of Harald Ganzinger, contains 17 papers from colleagues all over the world and covers all the fields to which Harald Ganzinger dedicated his work during his academic career. The volume begins with a complete account of Harald Ganzinger's work and then turns its focus to the research of his former colleagues, students, and friends who pay tribute to him through their writing. Their individual papers span a broad range of topics, including programming language semantics, analysis and verification, first-order and higher-order theorem proving, unification theory, non-classical logics, reasoning modulo theories, and applications of automated reasoning in biology.
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.
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.
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.
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.
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.
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.
Since its birth, the field of Probabilistic Logic Programming has seen a steady increase of activity, with many proposals for languages and algorithms for inference and learning. This book aims at providing an overview of the field with a special emphasis on languages under the Distribution Semantics, one of the most influential approaches. The book presents the main ideas for semantics, inference, and learning and highlights connections between the methods. Many examples of the book include a link to a page of the web application http://cplint.eu where the code can be run online. This 2nd edition aims at reporting the most exciting novelties in the field since the publication of the 1st edition. The semantics for hybrid programs with function symbols was placed on a sound footing. Probabilistic Answer Set Programming gained a lot of interest together with the studies on the complexity of inference. Algorithms for solving the MPE and MAP tasks are now available. Inference for hybrid programs has changed dramatically with the introduction of Weighted Model Integration. With respect to learning, the first approaches for neuro-symbolic integration have appeared together with algorithms for learning the structure for hybrid programs. Moreover, given the cost of learning PLPs, various works proposed language restrictions to speed up learning and improve its scaling.
Paul Williams, a leading authority on modeling in integer programming, has written a concise, readable introduction to the science and art of using modeling in logic for integer programming. Written for graduate and postgraduate students, as well as academics and practitioners, the book is divided into four chapters that all avoid the typical format of definitions, theorems and proofs and instead introduce concepts and results within the text through examples. References are given at the end of each chapter to the more mathematical papers and texts on the subject, and exercises are included to reinforce and expand on the material in the chapter. Methods of solving with both logic and IP are given and their connections are described. Applications in diverse fields are discussed, and Williams shows how IP models can be expressed as satisfiability problems and solved as such.
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.