Automated Reasoning: Symbolic Model Checking

بواسطة: Coursera

Overview

The Automated Reasoning: Symbolic Model Checking course presents how the properties of acting systems and programs can be verified automatically. The basic notion is a transition system: any system that can be described by states and steps. We present how in CTL (computation tree logic) properties like reach-ability can be described.

Typically, a state space may be very large. One way to deal with this is symbolic model checking: a way in which sets of states are represented symbolically. A fruitful way to do so is by representing sets of states by BDDs (binary decision diagrams).
Definitions and basic properties of BDDs are presented in this course, and the algorithms to compute them, as needed for doing CTL model checking.

Syllabus

  • CTL model checking
    • After a general introduction to the MOOC, this module starts by a general description of model checking.Then Computation Tree Logic (CTL) is introduced: a language in which properties on transition systems can be described. The algorithm to check whether such a property holds is given in an abstract setting, leaving implicit how sets of states are represented.
  • BDDs part 1
    • In this module BDDs (binary decision diagrams) are introduced as decision trees with sharing. They represent boolean functions.
      Extra requirements on both decision trees and BDDs are presented from which uniqueness of the representation can be concluded.
  • BDDs part 2
    • After some examples of BDD, the algorithm is presented and discussed to compute the ROBDD of any propositional formula.
  • BDD based symbolic model checking
    • In this last module the topics of CTL model checking and BDDs are combined: it is shown how BDDs can be used to represent sets of states in a way that the abstract algorithm for CTL mode checking can be used, and much larger state spaces can be dealt with than by using explicit state based model checking. Sever examples are presented.

Taught by

Hans Zantema

Automated Reasoning: Symbolic Model Checking
الذهاب الي الدورة

Automated Reasoning: Symbolic Model Checking

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • intermediate
  • English, Kazakh, German, Hindi, Russian, Swedish, Korean, Portuguese, Greek, Italian, French, Chinese, Spanish, Arabic, Thai, Ukrainian, Japanese, Indonesian, Polish, Dutch, Turkish
8.1.2PHP Version301msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (191ms)
    • Application (109ms)
    • 1 x Booting (63.57%)
      191.12ms
      1 x Application (36.18%)
      108.78ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed4.76ms
      • select * from `courses` where `slug_ar` = 'automated-reasoning:-symbolic-model-checking' limit 1
        2.89ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. automated-reasoning:-symbolic-model-checking
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-16 23:01:35' where `id` = 495
        750μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-16 23:01:35
        • 1. 495
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (1)
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        140μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (47) and `institutions`.`deleted_at` is null
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        150μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 489 limit 1
        480μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 489
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        qvNDimgtHvNasFAIOXcdX6nmAHK5COJgFO7CmAH6
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/automa...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/automated-reasoning:-symbolic-model-checking
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "18.119.165.5" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "93174e2ffdf02232-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "18.119.165.5" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "18.119.165.5" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "93174e2ffdf02232-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "18.119.165.5" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "45878" "REMOTE_ADDR" => "172.71.254.176" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/automated-reasoning:-symbolic-model-checking" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744844495.6193 "REQUEST_TIME" => 1744844495 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Wed, 16 Apr 2025 23:01:35 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImFON0s1R0JJWjdnYzFwaG02YXZwemc9PSIsInZhbHVlIjoibUZrdmpBeUttaDlpdlRrRjdZaVlsNXBQTUh2VTU4bVB1Mzh1eDdzaTRkUTJOZndleTVvOXZJTEUvVGdaZzRDSFk4cWlMU3poV0d3UlViRFVZZjlFNUVNL1pMdzBKVXp2dERqRmd3OFRMRThHZjlmUkE0MHBHUUtiM1JhLzdXOGIiLCJtYWMiOiI5OTc1ZDE3NjI0ZmY4MjJiMDBjZjUzNjlhMGQxM2E4YWY1ZjY1ZGU3ZGFjZTU5YWNhYzM5NzJjMTg2N2E0MWU0IiwidGFnIjoiIn0%3D; expires=Thu, 17 Apr 2025 01:01:35 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImFON0s1R0JJWjdnYzFwaG02YXZwemc9PSIsInZhbHVlIjoibUZrdmpBeUttaDlpdlRrRjdZaVlsNXBQTUh2VTU4bVB1Mzh1eDdzaTRkUTJOZndleTVvOXZJTEUvVGdaZzRDSFk4cWlMU" 1 => "laravel_session=eyJpdiI6IjlMUlNNWlpGOTMvRDRGRHFnTUFsUkE9PSIsInZhbHVlIjoiVFVsWWRCdkdQbGRiRkNVNWZCRWwwSCt5a20vYXJIUXpidXVKazRJVUh6RjhkekhnVWNCeERTaTNsOFZjclVpYXFUb0p5S3JaRmpDUmdwR0hVVWNqZHFDQXJHUjNaaXRPbnI4eTRNNEw4Ujl6c1IxcSs1M3htQ0dXMWZQaDkremkiLCJtYWMiOiI2NzhmM2M1M2QxOTFiYWRjZjMxYzg4ZjllMGQ3OTI0N2EwNjdmOGYyNmQyYmE2N2M0MmU5M2EyODE4ZjQ3MjQyIiwidGFnIjoiIn0%3D; expires=Thu, 17 Apr 2025 01:01:35 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjlMUlNNWlpGOTMvRDRGRHFnTUFsUkE9PSIsInZhbHVlIjoiVFVsWWRCdkdQbGRiRkNVNWZCRWwwSCt5a20vYXJIUXpidXVKazRJVUh6RjhkekhnVWNCeERTaTNsOFZjclVpYXFU" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImFON0s1R0JJWjdnYzFwaG02YXZwemc9PSIsInZhbHVlIjoibUZrdmpBeUttaDlpdlRrRjdZaVlsNXBQTUh2VTU4bVB1Mzh1eDdzaTRkUTJOZndleTVvOXZJTEUvVGdaZzRDSFk4cWlMU3poV0d3UlViRFVZZjlFNUVNL1pMdzBKVXp2dERqRmd3OFRMRThHZjlmUkE0MHBHUUtiM1JhLzdXOGIiLCJtYWMiOiI5OTc1ZDE3NjI0ZmY4MjJiMDBjZjUzNjlhMGQxM2E4YWY1ZjY1ZGU3ZGFjZTU5YWNhYzM5NzJjMTg2N2E0MWU0IiwidGFnIjoiIn0%3D; expires=Thu, 17-Apr-2025 01:01:35 GMT; path=/XSRF-TOKEN=eyJpdiI6ImFON0s1R0JJWjdnYzFwaG02YXZwemc9PSIsInZhbHVlIjoibUZrdmpBeUttaDlpdlRrRjdZaVlsNXBQTUh2VTU4bVB1Mzh1eDdzaTRkUTJOZndleTVvOXZJTEUvVGdaZzRDSFk4cWlMU" 1 => "laravel_session=eyJpdiI6IjlMUlNNWlpGOTMvRDRGRHFnTUFsUkE9PSIsInZhbHVlIjoiVFVsWWRCdkdQbGRiRkNVNWZCRWwwSCt5a20vYXJIUXpidXVKazRJVUh6RjhkekhnVWNCeERTaTNsOFZjclVpYXFUb0p5S3JaRmpDUmdwR0hVVWNqZHFDQXJHUjNaaXRPbnI4eTRNNEw4Ujl6c1IxcSs1M3htQ0dXMWZQaDkremkiLCJtYWMiOiI2NzhmM2M1M2QxOTFiYWRjZjMxYzg4ZjllMGQ3OTI0N2EwNjdmOGYyNmQyYmE2N2M0MmU5M2EyODE4ZjQ3MjQyIiwidGFnIjoiIn0%3D; expires=Thu, 17-Apr-2025 01:01:35 GMT; path=/; httponlylaravel_session=eyJpdiI6IjlMUlNNWlpGOTMvRDRGRHFnTUFsUkE9PSIsInZhbHVlIjoiVFVsWWRCdkdQbGRiRkNVNWZCRWwwSCt5a20vYXJIUXpidXVKazRJVUh6RjhkekhnVWNCeERTaTNsOFZjclVpYXFU" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "qvNDimgtHvNasFAIOXcdX6nmAHK5COJgFO7CmAH6" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/automated-reasoning:-symbolic-model-checking" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]