System Validation: Automata and behavioural equivalences

بواسطة: Coursera

Overview

Have you ever experienced software systems failing? Websites crash, calendar not synchronising, or even a power blackout. Of course you have! But did you know that many of these errors are the result of communication errors either within a system or between systems? Depending on the system, the impact of software failures can be huge, even resulting in massive economic damage or loss of lives. Software, and in particular the communication between software-intensive systems, is very complex and very difficult to get right. However, we need dependability in the systems we use, directly or indirectly, to support us in our everyday lives.

System Validation helps you to design embedded system behaviour that is structurally sound. It also forces you to make the behaviour simple and insightful; systems that are designed for sound behaviour are also much easier to maintain and adapt. System Validation is the field that studies the fundamentals of system communication and information processing. The techniques put forward in system validaton allow to prove the absence of errors.

This first course ’Automata and behavioural equivalences', builds the foundation of the subsequent courses, showing you how to look at system behaviour as state machines. It discusses behavioural equivalences and illustrates these in a number of examples and quizzes. This course explains labelled transition systems or automata to model behaviour, especially for software controlled systems. An important question is when two behaviours represented by such automata are equal. The answer to this question is not at all straightforward, but the resulting equivalences are used as powerful tools to simplify complex behaviour. This allows us to exactly investigate and understand the behavioural properties of such systems precisely. Especially, in the combination with hiding of behaviour, equivalence reduction is a unique technique to obtain insight in the behaviour of systems, and is far more effective than simulation or testing. Using this insight we can make the models correct. Such models form an excellent basis for the production of concise, reliable and maintainable software.

This course is part I of the set of courses for System Validation. System Validation, as a set of courses, is part of a larger EIT Digital online programme called 'Internet of Things through Embedded Systems'.

Syllabus

  • Behavioural modelling
    • System Validation is the field that studies the fundamentals of system communication and information processing. It allows automated analysis based on behavioural models of a system to see if a system works correctly. We want to guarantee that the systems does exactly what it is supposed to do. The techniques put forward in system validaton allow to prove the absence of errors. It allows to design embedded system behaviour that is structurally sound and as a side effect enforces you to make the behaviour simple and insightful. This means that the systems are not only behaving correctly, but are also much easier to maintain and adapt.’Automata and behavioural equivalences' shows you how to look at system behaviour as state machines. It discusses behavioural equivalences and illustrate these in a number of examples and quizzes. This module introduces automata or labelled transition systems as the basic way to model the behaviour of software controlled systems. It subsequently addresses the question when such behaviours are equivalent.

      Reading material. J.F. Groote and M.R. Mousavi. Modeling and analysis of communicating systems. The MIT Press, 2014.
  • Basic behavioural equivalences
    • This module shows the most important equivalences that express when the behaviour of two automata can be considered to be equivalent. It will become obvious that there are multiple of such notions, all fit for use under different circumstances. Furthermore, the all-important notion of the internal or hidden action is introduced with some associated behavioural equivalences.
  • More behavioural equivalences
    • This module elaborates on the equivalences provided earlier. It is shown how it can be applied, especially to the alternating bit protocol. Furthermore, a number of additional equivalences are introduced.

Taught by

Jan Friso Groote

System Validation: Automata and behavioural equivalences
الذهاب الي الدورة

System Validation: Automata and behavioural equivalences

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • intermediate
  • English, Arabic, French, Portuguese, German, Thai, Indonesian, Spanish, Kazakh, Hindi, Russian, Swedish, Korean, Greek, Italian, Chinese, Ukrainian, Japanese, Polish, Dutch, Turkish
8.1.2PHP Version175msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (104ms)
    • Application (71.41ms)
    • 1 x Booting (59.06%)
      103.63ms
      1 x Application (40.7%)
      71.41ms
      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.37ms
      • select * from `courses` where `slug_ar` = 'system-validation:-automata-and-behavioural-equivalences' limit 1
        2.33ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. system-validation:-automata-and-behavioural-equivalences
        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 22:50:16' where `id` = 420
        650μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-16 22:50:16
        • 1. 420
        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 (12)
        210μ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)
        130μ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
        530μ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
        290μ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` = 414 limit 1
        230μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 414
        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
        IDaqNpcg4hSYdvxFhWMSA3gJzdNZjHkDhZbz2l1W
        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/system...
        _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/system-validation:-automata-and-behavioural-equivalences
        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 => "3.19.213.242" ] "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 => "93173d9a496061cf-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 => "3.19.213.242" ] "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" => "3.19.213.242" "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" => "93173d9a496061cf-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" => "3.19.213.242" "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" => "63682" "REMOTE_ADDR" => "172.69.6.91" "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/system-validation:-automata-and-behavioural-equivalences" "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" => 1744843816.2998 "REQUEST_TIME" => 1744843816 ]
        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 22:50:16 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ik1LWjcwUTNIcGRZbDNpaVJ6b2ZXZGc9PSIsInZhbHVlIjoiR080RzJxYTVPSFFPb3cvYzE4RjdwV0V1TWxRWnRuT3BOeW5QZWNvVHhzYjNDUk1KUFlxTk1zcGFYeTlIZGRGMklDNkowWktEcW91UXNFRzQ4ME1zNE9NMUJrNHZkY3pTUG9ta2txeloydmwwamFKUTBzUzcrcXFNZTJXSVBJVEwiLCJtYWMiOiJkYzc0ODQzMDU3MTVhOGM2NzA1YTdhMmI4MmVjN2Y4ZDkxZmE0ZWZkYmQyN2M2ODVkYTY5MDdmYjYwNmJhNmRmIiwidGFnIjoiIn0%3D; expires=Thu, 17 Apr 2025 00:50:16 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Ik1LWjcwUTNIcGRZbDNpaVJ6b2ZXZGc9PSIsInZhbHVlIjoiR080RzJxYTVPSFFPb3cvYzE4RjdwV0V1TWxRWnRuT3BOeW5QZWNvVHhzYjNDUk1KUFlxTk1zcGFYeTlIZGRGMklDNkowW" 1 => "laravel_session=eyJpdiI6Iko1dWEyQ3FwZCtrWXN4cXRPOSthN3c9PSIsInZhbHVlIjoiMmR2blE2WGMySENidmtna3JsaEkrUXFBaEtjSmxvU1BEaGYvT2lweCszK3lVN2tDY0FJbU9iWTNoanZMR3R5T2EzQzR5alNaK013Ump1aFBQekxqbHFhZjlJdzFNMWxBTW1SM2VvVUdSSUZ2WjBHYTJQTGlBVUZLYk4xY3lOekIiLCJtYWMiOiJjYzZmNmVjNmVlNjUxMmRhM2FhZGQ4MmQwMzFjZjAxYjRjMjYzMTFiNGUwNGY1NDAwYjAyOTU3YzY4MDY4M2M1IiwidGFnIjoiIn0%3D; expires=Thu, 17 Apr 2025 00:50:16 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Iko1dWEyQ3FwZCtrWXN4cXRPOSthN3c9PSIsInZhbHVlIjoiMmR2blE2WGMySENidmtna3JsaEkrUXFBaEtjSmxvU1BEaGYvT2lweCszK3lVN2tDY0FJbU9iWTNoanZMR3R5T2Ez" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ik1LWjcwUTNIcGRZbDNpaVJ6b2ZXZGc9PSIsInZhbHVlIjoiR080RzJxYTVPSFFPb3cvYzE4RjdwV0V1TWxRWnRuT3BOeW5QZWNvVHhzYjNDUk1KUFlxTk1zcGFYeTlIZGRGMklDNkowWktEcW91UXNFRzQ4ME1zNE9NMUJrNHZkY3pTUG9ta2txeloydmwwamFKUTBzUzcrcXFNZTJXSVBJVEwiLCJtYWMiOiJkYzc0ODQzMDU3MTVhOGM2NzA1YTdhMmI4MmVjN2Y4ZDkxZmE0ZWZkYmQyN2M2ODVkYTY5MDdmYjYwNmJhNmRmIiwidGFnIjoiIn0%3D; expires=Thu, 17-Apr-2025 00:50:16 GMT; path=/XSRF-TOKEN=eyJpdiI6Ik1LWjcwUTNIcGRZbDNpaVJ6b2ZXZGc9PSIsInZhbHVlIjoiR080RzJxYTVPSFFPb3cvYzE4RjdwV0V1TWxRWnRuT3BOeW5QZWNvVHhzYjNDUk1KUFlxTk1zcGFYeTlIZGRGMklDNkowW" 1 => "laravel_session=eyJpdiI6Iko1dWEyQ3FwZCtrWXN4cXRPOSthN3c9PSIsInZhbHVlIjoiMmR2blE2WGMySENidmtna3JsaEkrUXFBaEtjSmxvU1BEaGYvT2lweCszK3lVN2tDY0FJbU9iWTNoanZMR3R5T2EzQzR5alNaK013Ump1aFBQekxqbHFhZjlJdzFNMWxBTW1SM2VvVUdSSUZ2WjBHYTJQTGlBVUZLYk4xY3lOekIiLCJtYWMiOiJjYzZmNmVjNmVlNjUxMmRhM2FhZGQ4MmQwMzFjZjAxYjRjMjYzMTFiNGUwNGY1NDAwYjAyOTU3YzY4MDY4M2M1IiwidGFnIjoiIn0%3D; expires=Thu, 17-Apr-2025 00:50:16 GMT; path=/; httponlylaravel_session=eyJpdiI6Iko1dWEyQ3FwZCtrWXN4cXRPOSthN3c9PSIsInZhbHVlIjoiMmR2blE2WGMySENidmtna3JsaEkrUXFBaEtjSmxvU1BEaGYvT2lweCszK3lVN2tDY0FJbU9iWTNoanZMR3R5T2Ez" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "IDaqNpcg4hSYdvxFhWMSA3gJzdNZjHkDhZbz2l1W" "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/system-validation:-automata-and-behavioural-equivalences" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]