Overview
Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Formal verification is an effective method for ensuring correctness of computing systems deployed in a growing number of diverse safety critical domains across our society. This specialization introduces basic concepts and fundamentals of model checking, a critical approach to logic verification of computing systems including hardware, software, or both. Model checking, a branch of automated formal verification relying on rigorous mathematical methods, is often used to provide high confidence in the target systems.
This specialization will first introduce modeling formalisms that are foundations for automated algorithmic analysis and show how different types of computing systems are represented in these formalisms. Second, it will introduce temporal logics and show how they can be used to precisely and unambiguously describe different properties to define correct requirements of target systems for model checking. Third, it will introduce basic graph-based model checking algorithms to decide the truth of the temporal logic properties against models of computing systems under verification. Third, it will introduce equivalence theories that can support methods of abstraction enabling model complexity reduction improving the efficiency of model checking. Finally, it will introduce the partial order reduction method that can substantially reduce the size of the state space produced by model checking for highly concurrent systems.
Syllabus
- Course 1: Introduction to Modeling for Formal Verification
- Course 2: Temporal Logic Model Checking
- Course 3: Equivalences, Abstraction, and Partial Order Reduction
Courses
-
This course introduces the basic concepts of functional verification and model checking, highlighting their importance in modern system designs. It explains different modeling formalisms for representing the behavior of hardware and software, which are either suitable for automated analysis or can represent data-dependent controls that are common in computing system designs. Additionally, it describes system compositions with respect to different communication models. This course can also be taken for academic credit as ECEA ####, part of CU Boulder’s Master of Science in Electrical Engineering.
-
This course introduces the basic concepts of functional verification and model checking, highlighting their importance in modern system designs. It explains different modeling formalisms for representing the behavior of hardware and software, which are either suitable for automated analysis or can represent data-dependent controls that are common in computing system designs. Additionally, it describes system compositions with respect to different communication models. This course can also be taken for academic credit as ECEA ####, part of CU Boulder’s Master of Science in Electrical Engineering.
-
This course introduces methods to utilize abstraction and partial order methods to reduce the complexity of their systems models. The equivalences introduced are based upon bisimulation and simulation relations. These concepts allow one to prove that a model is an abstraction (or simplification) of another model of the same system. Abstraction reduces the complexity of the system model while preserving the ability to correctly verify properties of the system. This course will also introduce the partial order method to further reduce model complexity during verification by enabling the state space exploration to not need to consider all possible interleavings of concurrent events. This approach often provides substantial reductions in the state space of the model being verified. This course can be taken for academic credit as part of CU Boulder’s Master of Science in Electrical and Computer Engineering (MS-ECE) degree offered on the Coursera platform. The degree offers targeted courses, short 8-week sessions, and pay-as-you-go tuition. Admission is based on performance in three preliminary courses, not academic history. CU degrees on Coursera are ideal for recent graduates or working professionals. Learn more: MS in Electrical and Computer Engineering: https://www.coursera.org/degrees/msee-boulder
Taught by
Chris Myers and Hao Zheng