University of Colorado Boulder
Introduction to Modeling for Formal Verification
University of Colorado Boulder

Introduction to Modeling for Formal Verification

Hao Zheng

Instructor: Hao Zheng

Included with Coursera Plus

Gain insight into a topic and learn the fundamentals.
Beginner level

Recommended experience

13 hours to complete
3 weeks at 4 hours a week
Flexible schedule
Learn at your own pace
Gain insight into a topic and learn the fundamentals.
Beginner level

Recommended experience

13 hours to complete
3 weeks at 4 hours a week
Flexible schedule
Learn at your own pace

What you'll learn

  • Explain functional verification and model checking, including their benefits and drawbacks

  • Describe transition systems and how they represent behavior of hardware and software

  • Use program graphs to describe systems with data-dependent control

  • Describe communication models for system composition, including concurrency, shared variables, handshake, and synchronous parallelism. 

Details to know

Shareable certificate

Add to your LinkedIn profile

Recently updated!

March 2025

Assessments

10 assignments

Taught in English
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 3 modules in this course

This module introduces basic concepts of functional verification and model checking. It demonstrates the importance of verification via some examples, outlines the challenges, and reviews pros and cons of model checking with respect to other verification methods.

What's included

7 videos6 readings3 assignments

This module introduces transition systems, a basic modeling formalism for representing behavior of hardware and software that is suitable for automated analysis. The syntax and semantics of transition systems are explained, and how sequential circuits can be represented as transition systems is described. Next, program graphs as a formalism to model software are introduced. Syntax of program graphs is described, and semantic interpretation using transition systems is explained.

What's included

10 videos3 readings3 assignments

This module introduces some modeling formalisms capturing different types of system compositions. Particularly, interleaving of concurrent transition systems, compositions of systems communicating via shared variables or handshaking are explained. Additionally, synchronous parallelism is described for composing synchronous circuit composition.

What's included

10 videos4 readings4 assignments

Instructor

Hao Zheng
University of Colorado Boulder
2 Courses24 learners

Offered by

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

New to Algorithms? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions