{"id":18394413,"url":"https://github.com/romac/msc-thesis-report","last_synced_at":"2026-02-14T00:03:11.472Z","repository":{"id":66930127,"uuid":"115338331","full_name":"romac/msc-thesis-report","owner":"romac","description":"MSc Thesis: Systems Modelling with Stainless","archived":false,"fork":false,"pushed_at":"2019-06-24T19:29:30.000Z","size":6800,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-14T16:46:07.279Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TeX","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/romac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-25T13:00:59.000Z","updated_at":"2021-11-10T12:48:44.000Z","dependencies_parsed_at":"2023-02-22T07:30:34.039Z","dependency_job_id":null,"html_url":"https://github.com/romac/msc-thesis-report","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/romac/msc-thesis-report","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romac%2Fmsc-thesis-report","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romac%2Fmsc-thesis-report/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romac%2Fmsc-thesis-report/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romac%2Fmsc-thesis-report/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/romac","download_url":"https://codeload.github.com/romac/msc-thesis-report/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romac%2Fmsc-thesis-report/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29424610,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T22:20:51.549Z","status":"ssl_error","status_checked_at":"2026-02-13T22:20:49.838Z","response_time":78,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T02:05:40.053Z","updated_at":"2026-02-14T00:03:11.455Z","avatar_url":"https://github.com/romac.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Systems Modeling With Stainless\n\n\u003e January 2018\n\n## Abstract\n\nWe present three orthogonal approaches to the verification of non-trivial programs, and systems of medium complexity, such as evaluators for domain specific languages, small actor systems, and implementations of bi-party communication protocols. We first discuss the design, implementation and semantics of a partial symbolic evaluation procedure for PureScala programs, as well as the challenges we faced to ensure termination of said procedure. Next, we define a model for actor systems which we implement as a library for Stainless, and explain how to verify that a global invariant of an actor system is preserved between each step of execution, with supporting examples. At last, we show how the addition of linear types to the type system of Stainless allows us to safely model bi-party communication protocols expressed as session types in PureScala, with a supporting example.\n\n## Report\n\n[The report is available in PDF](report/report.pdf)\n\n## Presentation\n\n[The slides from the presentation are available in PDF](presentation/slides.pdf)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromac%2Fmsc-thesis-report","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fromac%2Fmsc-thesis-report","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromac%2Fmsc-thesis-report/lists"}