Computer-Aided Reasoning


Book Description

Computer-Aided Reasoning: An Approach is a textbook introduction to computer-aided reasoning. It can be used in graduate and upper-division undergraduate courses on software engineering or formal methods. It is also suitable in conjunction with other books in courses on hardware design, discrete mathematics, or theory, especially courses stressing formalism, rigor, or mechanized support. It is also appropriate for courses on artificial intelligence or automated reasoning and as a reference for business and industry. Current hardware and software systems are often very complex and the trend is towards increased complexity. Many of these systems are of critical importance; therefore making sure that they behave as expected is also of critical importance. By modeling computing systems mathematically, we obtain models that we can prove behave correctly. The complexity of computing systems makes such proofs very long, complicated, and error-prone. To further increase confidence in our reasoning, we can use a computer program to check our proofs and even to automate some of their construction. In this book we present: A practical functional programming language closely related to Common Lisp which is used to define functions (which can model computing systems) and to make assertions about defined functions; A formal logic in which defined functions correspond to axioms; the logic is first-order, includes induction, and allows us to prove theorems about the functions; The computer-aided reasoning system ACL2, which includes the programming language, the logic, and mechanical support for the proof process. The ACL2 system has been successfully applied to projects of commercial interest, including microprocessor, modeling, hardware verification, microcode verification, and software verification. This book gives a methodology for modeling computing systems formally and for reasoning about those models with mechanized assistance. The practicality of computer-aided reasoning is further demonstrated in the companion book, Computer-Aided Reasoning: ACL2 Case Studies. Approximately 140 exercises are distributed throughout the book. Additional material is freely available from the ACL2 home page on the Web, including solutions to the exercises, additional exercises, case studies from the companion book, research papers, and the ACL2 system with detailed documentation.




Computer-Aided Reasoning


Book Description

Computer-Aided Reasoning: An Approach is a textbook introduction to computer-aided reasoning. It can be used in graduate and upper-division undergraduate courses on software engineering or formal methods. It is also suitable in conjunction with other books in courses on hardware design, discrete mathematics, or theory, especially courses stressing formalism, rigor, or mechanized support. It is also appropriate for courses on artificial intelligence or automated reasoning and as a reference for business and industry. Current hardware and software systems are often very complex and the trend is towards increased complexity. Many of these systems are of critical importance; therefore making sure that they behave as expected is also of critical importance. By modeling computing systems mathematically, we obtain models that we can prove behave correctly. The complexity of computing systems makes such proofs very long, complicated, and error-prone. To further increase confidence in our reasoning, we can use a computer program to check our proofs and even to automate some of their construction. In this book we present: A practical functional programming language closely related to Common Lisp which is used to define functions (which can model computing systems) and to make assertions about defined functions; A formal logic in which defined functions correspond to axioms; the logic is first-order, includes induction, and allows us to prove theorems about the functions; The computer-aided reasoning system ACL2, which includes the programming language, the logic, and mechanical support for the proof process. The ACL2 system has been successfully applied to projects of commercial interest, including microprocessor, modeling, hardware verification, microcode verification, and software verification. This book gives a methodology for modeling computing systems formally and for reasoning about those models with mechanized assistance. The practicality of computer-aided reasoning is further demonstrated in the companion book, Computer-Aided Reasoning: ACL2 Case Studies. Approximately 140 exercises are distributed throughout the book. Additional material is freely available from the ACL2 home page on the Web, including solutions to the exercises, additional exercises, case studies from the companion book, research papers, and the ACL2 system with detailed documentation.




Constraint-based Reasoning


Book Description

Constraint-based reasoning is an important area of automated reasoning in artificial intelligence, with many applications. These include configuration and design problems, planning and scheduling, temporal and spatial reasoning, defeasible and causal reasoning, machine vision and language understanding, qualitative and diagnostic reasoning, and expert systems. Constraint-Based Reasoning presents current work in the field at several levels: theory, algorithms, languages, applications, and hardware. Constraint-based reasoning has connections to a wide variety of fields, including formal logic, graph theory, relational databases, combinatorial algorithms, operations research, neural networks, truth maintenance, and logic programming. The ideal of describing a problem domain in natural, declarative terms and then letting general deductive mechanisms synthesize individual solutions has to some extent been realized, and even embodied, in programming languages. Contents Introduction, E. C. Freuder, A. K. Mackworth * The Logic of Constraint Satisfaction, A. K. Mackworth * Partial Constraint Satisfaction, E. C. Freuder, R. J. Wallace * Constraint Reasoning Based on Interval Arithmetic: The Tolerance Propagation Approach, E. Hyvonen * Constraint Satisfaction Using Constraint Logic Programming, P. Van Hentenryck, H. Simonis, M. Dincbas * Minimizing Conflicts: A Heuristic Repair Method for Constraint Satisfaction and Scheduling Problems, S. Minton, M. D. Johnston, A. B. Philips, and P. Laird * Arc Consistency: Parallelism and Domain Dependence, P. R. Cooper, M. J. Swain * Structure Identification in Relational Data, R. Dechter, J. Pearl * Learning to Improve Constraint-Based Scheduling, M. Zweben, E. Davis, B. Daun, E. Drascher, M. Deale, M. Eskey * Reasoning about Qualitative Temporal Information, P. van Beek * A Geometric Constraint Engine, G. A. Kramer * A Theory of Conflict Resolution in Planning, Q. Yang A Bradford Book.




Soft Computing in Case Based Reasoning


Book Description

This text demonstrates how various soft computing tools can be applied to design and develop methodologies and systems with case based reasoning, that is, for real-life decision-making or recognition problems. Comprising contributions from experts, it introduces the basic concepts and theories, and includes many reports on real-life applications. This book is of interest to graduate students and researchers in computer science, electrical engineering and information technology, as well as researchers and practitioners from the fields of systems design, pattern recognition and data mining.




Computer Aided Verification


Book Description

This book constitutes the proceedings of the 26th International Conference on Computer Aided Verification, CAV 2014, held as part of the Vienna Summer of Logic, VSL 2014, in Vienna, Austria, in July 2014. The 46 regular papers and 11 short papers presented in this volume were carefully reviewed and selected from a total of 175 regular and 54 short paper submissions. The contributions are organized in topical sections named: software verification; automata; model checking and testing; biology and hybrid systems; games and synthesis; concurrency; SMT and theorem proving; bounds and termination; and abstraction.




Case-Based Reasoning


Book Description

Case-based reasoning is one of the fastest growing areas in the field of knowledge-based systems and this book, authored by a leader in the field, is the first comprehensive text on the subject. Case-based reasoning systems are systems that store information about situations in their memory. As new problems arise, similar situations are searched out to help solve these problems. Problems are understood and inferences are made by finding the closest cases in memory, comparing and contrasting the problem with those cases, making inferences based on those comparisons, and asking questions when inferences can't be made. This book presents the state of the art in case-based reasoning. The author synthesizes and analyzes a broad range of approaches, with special emphasis on applying case-based reasoning to complex real-world problem-solving tasks such as medical diagnosis, design, conflict resolution, and planning. The author's approach combines cognitive science and engineering, and is based on analysis of both expert and common-sense tasks. Guidelines for building case-based expert systems are provided, such as how to represent knowledge in cases, how to index cases for accessibility, how to implement retrieval processes for efficiency, and how to adapt old solutions to fit new situations. This book is an excellent text for courses and tutorials on case-based reasoning. It is also a useful resource for computer professionals and cognitive scientists interested in learning more about this fast-growing field.




Fundamentals of Computer-Aided Engineering


Book Description

It is vital that today’s engineers work with computer-based tools and techniques. However, programming courses do not provide engineering students with the skills that are necessary to succeed in their professional career. Here, the authors propose a novel, practical approach that encompasses knowledge assimilation, decision-making capabilities and technical agility, together with concepts in computer-aided engineering that are independent of hardware and software technologies. This book: Outlines general concepts such as fundamental logic, definition of engineering tasks and computational complexity Covers numerous representation frameworks and reasoning strategies such as databases, objects, constraints, knowledge systems, search and optimisation, scientific computation and machine learning Features visualization and distribution of engineering information Presents a range of IT topics that are relevant to all branches of engineering Offers many practical engineering examples and exercises Fundamentals of Computer Aided Engineering provides support for all students involved in computer-aided engineering courses in civil, mechanical, chemical and environmental engineering. This book is also a useful reference for researchers, practising engineers using CAE and educators who wish to increase their knowledge of fundamental concepts.




Applying Case-Based Reasoning


Book Description

This book explains the principles of CBR by describing its origin and contrasting it with familiar information disciplines such as traditional data processing, logic programming, rule-based expert systems, and object-oriented programming. Through case studies and step-by-step examples, this book shows programmers and software managers how to design and implement a reliable, robust CBR system in a real-world environment.







Case-Based Learning


Book Description

Case-based reasoning means reasoning based on remembering previous experiences. A reasoner using old experiences (cases) might use those cases to suggest solutions to problems, to point out potential problems with a solution being computed, to interpret a new situation and make predictions about what might happen, or to create arguments justifying some conclusion. A case-based reasoner solves new problems by remembering old situations and adapting their solutions. It interprets new situations by remembering old similar situations and comparing and contrasting the new one to old ones to see where it fits best. Case-based reasoning combines reasoning with learning. It spans the whole reasoning cycle. A situation is experienced. Old situations are used to understand it. Old situations are used to solve a problem (if there is one to be solved). Then the new situation is inserted into memory alongside the cases it used for reasoning, to be used another time. The key to this reasoning method, then, is remembering. Remembering has two parts: integrating cases or experiences into memory when they happen and recalling them in appropriate situations later on. The case-based reasoning community calls this related set of issues the indexing problem. In broad terms, it means finding in memory the experience closest to a new situation. In narrower terms, it can be described as a two-part problem: assigning indexes or labels to experiences when they are put into memory that describe the situations to which they are applicable, so that they can be recalled later; and at recall time, elaborating the new situation in enough detail so that the indexes it would have if it were in the memory are identified. Case-Based Learning is an edited volume of original research comprising invited contributions by leading workers. This work has also been published as a special issues of MACHINE LEARNING, Volume 10, No. 3.