Formal Methods in Computer Science


Book Description

This textbook gives students a comprehensive introduction to formal methods and their application in software and hardware specification and verification. It has three parts: The first part introduces some fundamentals in formal methods, including set theory, functions, finite state machines, and regular expressions. The second part focuses on logi




Formal Methods in Computer Science


Book Description

The first part introduces some fundamentals in formal methods, including set theory, functions, finite state machines, and regular expressions. The second part focuses on logic, a powerful formal language in specifying systems properties. It covers propositional logic, temporal logic, and model checking. The third part presents Petri nets, the most popular formal language in system behavior modeling. In addition to regular Petri nets, it also examines timed Petri nets and high-level Petri nets. -- Provided by publisher.




Formal Foundations for Software Engineering Methods


Book Description

In this book, Hussmann builds a bridge between the pragmatic methods for the design of information systems and the formal, mathematical background. Firstly, the principal feasibility of an integration of the different methods is demonstrated. Secondly, the formalism is used as a systematic semantic analysis of the concepts in SSADM, a British standard structured software engineering method. Thirdly, a way of obtaining a hybrid formal-pragmatic specification using a combination of SSADM notations and formal (SPECTRUM) specifications is shown. This well-written book encourages scientists and software engineers to apply formal methods to practical software development problems.




Understanding Formal Methods


Book Description

This is an excellent introduction to formal methods which will bring anyone who needs to know about this important topic up to speed. It is comprehensive, giving the reader all the information needed to explore the field of formal methods in more detail. It offers: a guide to the mathematics required; comprehensive but easy-to-understand introductions to various methods; a run-down of how formal methods can help to develop high-quality systems that come in on time, within budget, and according to requirements.




Verification of Reactive Systems


Book Description

This book is a solid foundation of the most important formalisms used for specification and verification of reactive systems. In particular, the text presents all important results on m-calculus, w-automata, and temporal logics, shows the relationships between these formalisms and describes state-of-the-art verification procedures for them. It also discusses advantages and disadvantages of these formalisms, and shows up their strengths and weaknesses. Most results are given with detailed proofs, so that the presentation is almost self-contained. Includes all definitions without relying on other material Proves all theorems in detail Presents detailed algorithms in pseudo-code for verification as well as translations to other formalisms




Formal Methods Teaching


Book Description

This book constitutes the refereed proceedings of the 4th International Workshop and Tutorial, FMTea 2021, Held as Part of the 4th World Congress on Formal Methods, FM 2021, as a virtual event in November 2021. The 8 full papers presented together with 2 short papers were carefully reviewed and selected from 12 submissions. The papers are organized in topical sections named: experiences and proposals related with online FM learning and teaching, integrating/embedding FM teaching/thinking within other computer science courses, teaching FM for industry, and innovative learning and teaching methods for FM.




Software Reliability Methods


Book Description

This book presents current methods for dealing with software reliability, illustrating the advantages and disadvantages of each method. The description of the techniques is intended for a non-expert audience with some minimal technical background. It also describes some advanced techniques, aimed at researchers and practitioners in software engineering. This reference will serve as an introduction to formal methods and techniques and will be a source for learning about various ways to enhance software reliability. Various projects and exercises give readers hands-on experience with the various formal methods and tools.




Concise Guide to Formal Methods


Book Description

This invaluable textbook/reference provides an easy-to-read guide to the fundamentals of formal methods, highlighting the rich applications of formal methods across a diverse range of areas of computing. Topics and features: introduces the key concepts in software engineering, software reliability and dependability, formal methods, and discrete mathematics; presents a short history of logic, from Aristotle’s syllogistic logic and the logic of the Stoics, through Boole’s symbolic logic, to Frege’s work on predicate logic; covers propositional and predicate logic, as well as more advanced topics such as fuzzy logic, temporal logic, intuitionistic logic, undefined values, and the applications of logic to AI; examines the Z specification language, the Vienna Development Method (VDM) and Irish School of VDM, and the unified modelling language (UML); discusses Dijkstra’s calculus of weakest preconditions, Hoare’s axiomatic semantics of programming languages, and the classical approach of Parnas and his tabular expressions; provides coverage of automata theory, probability and statistics, model checking, and the nature of proof and theorem proving; reviews a selection of tools available to support the formal methodist, and considers the transfer of formal methods to industry; includes review questions and highlights key topics in every chapter, and supplies a helpful glossary at the end of the book. This stimulating guide provides a broad and accessible overview of formal methods for students of computer science and mathematics curious as to how formal methods are applied to the field of computing.




Fundamental Proof Methods in Computer Science


Book Description

A textbook that teaches students to read and write proofs using Athena. Proof is the primary vehicle for knowledge generation in mathematics. In computer science, proof has found an additional use: verifying that a particular system (or component, or algorithm) has certain desirable properties. This book teaches students how to read and write proofs using Athena, a freely downloadable computer language. Athena proofs are machine-checkable and written in an intuitive natural-deduction style. The book contains more than 300 exercises, most with full solutions. By putting proofs into practice, it demonstrates the fundamental role of logic and proof in computer science as no other existing text does. Guided by examples and exercises, students are quickly immersed in the most useful high-level proof methods, including equational reasoning, several forms of induction, case analysis, proof by contradiction, and abstraction/specialization. The book includes auxiliary material on SAT and SMT solving, automated theorem proving, and logic programming. The book can be used by upper undergraduate or graduate computer science students with a basic level of programming and mathematical experience. Professional programmers, practitioners of formal methods, and researchers in logic-related branches of computer science will find it a valuable reference.




Algorithms in C.


Book Description

This text aims to provide an introduction to graph algorithms and data structures and an understanding of the basic properties of a broad range of fundamental graph algorithms. It is suitable for anyone with some basic programming concepts. It covers graph properties and types, graph search, directed graphs, minimal spanning trees, shortest paths, and networks.