Nonmonotonic reasoning provides formal methods that enable intelligent systems to operate adequately when faced with incomplete or changing information. In particular, it provides rigorous mechanisms for taking back conclusions that, in the presence of new information, turn out to be wrong and for deriving new, alternative conclusions instead. Nonmonotonic reasoning methods provide rigor similar to that of classical reasoning; they form a base for validation and verification and therefore increase confidence in intelligent systems that work with incomplete and changing information. Following a brief introduction to the concepts of predicate logic that are needed in the subsequent chapters, this book presents an in depth treatment of default logic. Other subjects covered include the major approaches of autoepistemic logic and circumscription, belief revision and its relationship to nonmonotonic inference, and briefly, the stable and well-founded semantics of logic programs.