System Validation (3): Requirements by modal formulas

بواسطة: Coursera

Overview

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 validation allow to prove the absence of errors. It allows to design embedded system behaviour that is structurally sound and as a side effect forces 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. ’Requirements by modal formulas' is the third course that shows you how to specify requirements for the automata in order to establish the correct relation between the requirements and the behaviour of the system. Reading material. J.F. Groote and M.R. Mousavi. Modeling and analysis of communicating systems. The MIT Press, 2014.

Syllabus

  • Basic modal formulas
    • In this module you learn how to specify requirements on behaviour. First Hennessy-Milner logic is explained, which is subsequently extended with fixed-points. Using this logic you will be able to formally characterise virtually any behavioral property on the behavior of software. This varies from simple properties such as a system is free from deadlocks, to complex properties such as "in a warehouse the controllers will instruct all the robots such that my ordered item will appear for certain within finite time at the output".
  • Advanced modal formulas
    • This module elaborates on modal formulas. It shows how to use data in the formulas which makes modelling of complex properties much easier. Furthermore, it shows how fairness properties can be modelled in the framework using nested fixed point operators. The last lectures introduce parameterised boolean equation systems and boolean equation systems as important technology to establish that a modal formula is valid for a particular specified behaviour.

Taught by

Jan Friso Groote

System Validation (3): Requirements by modal formulas
الذهاب الي الدورة

System Validation (3): Requirements by modal formulas

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • الجميع
  • English, Arabic, French, Portuguese, German, Thai, Indonesian, Spanish, Kazakh, Hindi, Russian, Swedish, Korean, Greek, Italian, Chinese, Ukrainian, Japanese, Polish, Dutch, Turkish
8.1.2PHP Version207msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (123ms)
    • Application (82.39ms)
    • 1 x Booting (59.17%)
      122.64ms
      1 x Application (39.75%)
      82.39ms
      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.91ms
      • select * from `courses` where `slug_ar` = 'system-validation-(3):-requirements-by-modal-formulas' limit 1
        3.45ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. system-validation-(3):-requirements-by-modal-formulas
        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 20:57:32' where `id` = 981
        480μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-16 20:57:32
        • 1. 981
        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)
        270μ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)
        150μ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
        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 * 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` = 975 limit 1
        240μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 975
        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
        mFK6BQ4OxxfKFHpNp6NXHl8S1rzfIcuj9GYroSBa
        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-%283%29:-requirements-by-modal-formulas
        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.137.187.238" ] "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 => "931698773ea3a6cc-EWR" ] "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.137.187.238" ] "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.137.187.238" "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" => "931698773ea3a6cc-EWR" "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.137.187.238" "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" => "16632" "REMOTE_ADDR" => "104.23.190.154" "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-%283%29:-requirements-by-modal-formulas" "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" => 1744837052.2275 "REQUEST_TIME" => 1744837052 ]
        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 20:57:32 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Inl1MTR4ZkNyMHZ0L3kzVUpqVEhsc3c9PSIsInZhbHVlIjoienpXaStpUmtGaEkrZFJNMG93WU91T0EzTkVsdkxtSmhGK0lGNUhSbWxCNVFGUFJ3cU0yQjVCS1o3dHJiUUovVFdzaERoM21KeDY1dW4xNjgvNkhRa2daQ3ZTRE5wK0dWVFl6dFJZb3ZqMXltMHBjc3NaZDZJM2ZpbGR2UHQxOXEiLCJtYWMiOiJiZDk0Mzg0Y2M1NDAyZjQ0ZTQ4YTQ1YjU4YzY0OWRjNGUzNTMxOGU4OGI4YzdkN2Y1NmVmMjVlZTc1Yjc1MGJhIiwidGFnIjoiIn0%3D; expires=Wed, 16 Apr 2025 22:57:32 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Inl1MTR4ZkNyMHZ0L3kzVUpqVEhsc3c9PSIsInZhbHVlIjoienpXaStpUmtGaEkrZFJNMG93WU91T0EzTkVsdkxtSmhGK0lGNUhSbWxCNVFGUFJ3cU0yQjVCS1o3dHJiUUovVFdzaERoM" 1 => "laravel_session=eyJpdiI6IlBOU1djRnVqWitVRElEUHhWRklic3c9PSIsInZhbHVlIjoiUnRzVE5BVHQ2NzBEeEIwWVBKZ3BJMUJubVRkRUljM2w2UEtYNW5qTTY2bkt3KzhZTjNVT3YvWlhrK0VSYXJYeHNXRUhYbXZCSnM1Nks4TklPR1hZRkVRWGw4UnNWTVpMemJrZG4wTW94OUhqNnk3L09BUit5aFEwbXNhSWU4djYiLCJtYWMiOiI4NGQ2NmU2MGVmMWU0MGE5NDQxMmMwOTgxMjIyMTgyNWQxMjg3N2U5YmQzOGFlNzJjNDJkOWRmMzliYzM1Njc3IiwidGFnIjoiIn0%3D; expires=Wed, 16 Apr 2025 22:57:32 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IlBOU1djRnVqWitVRElEUHhWRklic3c9PSIsInZhbHVlIjoiUnRzVE5BVHQ2NzBEeEIwWVBKZ3BJMUJubVRkRUljM2w2UEtYNW5qTTY2bkt3KzhZTjNVT3YvWlhrK0VSYXJYeHNX" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Inl1MTR4ZkNyMHZ0L3kzVUpqVEhsc3c9PSIsInZhbHVlIjoienpXaStpUmtGaEkrZFJNMG93WU91T0EzTkVsdkxtSmhGK0lGNUhSbWxCNVFGUFJ3cU0yQjVCS1o3dHJiUUovVFdzaERoM21KeDY1dW4xNjgvNkhRa2daQ3ZTRE5wK0dWVFl6dFJZb3ZqMXltMHBjc3NaZDZJM2ZpbGR2UHQxOXEiLCJtYWMiOiJiZDk0Mzg0Y2M1NDAyZjQ0ZTQ4YTQ1YjU4YzY0OWRjNGUzNTMxOGU4OGI4YzdkN2Y1NmVmMjVlZTc1Yjc1MGJhIiwidGFnIjoiIn0%3D; expires=Wed, 16-Apr-2025 22:57:32 GMT; path=/XSRF-TOKEN=eyJpdiI6Inl1MTR4ZkNyMHZ0L3kzVUpqVEhsc3c9PSIsInZhbHVlIjoienpXaStpUmtGaEkrZFJNMG93WU91T0EzTkVsdkxtSmhGK0lGNUhSbWxCNVFGUFJ3cU0yQjVCS1o3dHJiUUovVFdzaERoM" 1 => "laravel_session=eyJpdiI6IlBOU1djRnVqWitVRElEUHhWRklic3c9PSIsInZhbHVlIjoiUnRzVE5BVHQ2NzBEeEIwWVBKZ3BJMUJubVRkRUljM2w2UEtYNW5qTTY2bkt3KzhZTjNVT3YvWlhrK0VSYXJYeHNXRUhYbXZCSnM1Nks4TklPR1hZRkVRWGw4UnNWTVpMemJrZG4wTW94OUhqNnk3L09BUit5aFEwbXNhSWU4djYiLCJtYWMiOiI4NGQ2NmU2MGVmMWU0MGE5NDQxMmMwOTgxMjIyMTgyNWQxMjg3N2U5YmQzOGFlNzJjNDJkOWRmMzliYzM1Njc3IiwidGFnIjoiIn0%3D; expires=Wed, 16-Apr-2025 22:57:32 GMT; path=/; httponlylaravel_session=eyJpdiI6IlBOU1djRnVqWitVRElEUHhWRklic3c9PSIsInZhbHVlIjoiUnRzVE5BVHQ2NzBEeEIwWVBKZ3BJMUJubVRkRUljM2w2UEtYNW5qTTY2bkt3KzhZTjNVT3YvWlhrK0VSYXJYeHNX" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "mFK6BQ4OxxfKFHpNp6NXHl8S1rzfIcuj9GYroSBa" "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-%283%29:-requirements-by-modal-formulas" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]