{"id":13748976,"url":"https://github.com/DominicPM/supervisionary","last_synced_at":"2025-05-09T11:31:49.002Z","repository":{"id":63974933,"uuid":"332836982","full_name":"DominicPM/supervisionary","owner":"DominicPM","description":"Supervisionary: a proof-checking system for HOL","archived":false,"fork":false,"pushed_at":"2023-05-02T20:01:05.000Z","size":5071,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-22T20:33:40.949Z","etag":null,"topics":["higher-order-logic","rust","theorem-prover","theorem-proving","wasm","webassembly"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DominicPM.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-01-25T18:03:23.000Z","updated_at":"2022-12-04T20:17:53.000Z","dependencies_parsed_at":"2024-01-13T01:41:00.933Z","dependency_job_id":"558bfc69-da31-4a11-9e4c-77cf34e1cb92","html_url":"https://github.com/DominicPM/supervisionary","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DominicPM%2Fsupervisionary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DominicPM%2Fsupervisionary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DominicPM%2Fsupervisionary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DominicPM%2Fsupervisionary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DominicPM","download_url":"https://codeload.github.com/DominicPM/supervisionary/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253240350,"owners_count":21876593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["higher-order-logic","rust","theorem-prover","theorem-proving","wasm","webassembly"],"created_at":"2024-08-03T07:00:53.475Z","updated_at":"2025-05-09T11:31:44.509Z","avatar_url":"https://github.com/DominicPM.png","language":"Rust","funding_links":[],"categories":["Projects"],"sub_categories":["Verification"],"readme":"# The Supervisionary proof-checking system\n\n![build badge](https://github.com/DominicPM/supervisionary/actions/workflows/ci.yaml/badge.svg)\n\n*Supervisionary* is an experimental proof-checking system for Gordon's\nhigher-order logic (\"HOL\").  Rather than using programming language features to\nisolate and protect the kernel, as in typical LCF-style implementations of HOL\nlike HOL4 and Isabelle, Supervisionary uses *privilege* akin to how an operating\nsystem kernel is isolated and protected from untrusted user-space code, with the\ntwo communicating across a defined system call interface.\n\nFor more information, see the `paper/prisc22/prisc22.tex` two-page abstract, or\na pre-built\n[PDF](https://dominicpm.github.io/publications/mulligan-supervisionary-2022.pdf),\nof our accepted PriSC 2022 talk on Supervisionary and which relates the main\nideas behind the system.\n\n## Authors\n\nSupervisionary was originally written by Dominic Mulligan and Nick Spinale,\nSystems Research Group, Arm Research, Cambridge within the context of the\n[Veracruz](https://github.com/veracruz-project/veracruz) project.  Since 2022,\nthe system is exclusively developed and maintained by [Dominic\nMulligan](https://dominicpm.github.io).\n\n## System components\n\nThe repository contains the following components in similarly-named directories:\n\n- *Kernel*: this is the core of the Supervisionary kernel, and is completely\n  execution-engine independent (well, almost).\n- *Wasmi bindings*: this is the binding of the Supervisionary kernel to the\n  Wasmi execution engine so that Supervisionary can execute Wasm binaries.\n- *libsupervisionary*: this is a user-space Rust support library that abstracts\n  over the raw Supervisionary system call interface.\n- *Driver*: this is a command line application that reads a Wasm binary,\n  supplied on the command line, loads it, then executes it under the\n  Supervisionary virtual machine.  Wasm binaries must be compiled using the\n  `wasm32-unknown-unknown` target and linked against `libsupervisionary`.\n- *System interface*: provides a generic interface that Supervisionary can use\n  to query or manipulate aspects of the system, for example the filesystem, or\n  clock-related functions.  Also provides a \"pass through\" implementation of\n  this interface which calls through to the underlying system executing\n  Supervisionary.\n- *Tests*: these are test binaries linked against `libsupervisionary` that\n  exercise the different aspects of the Supervisionary system call interface.\nThese can be executed using `driver`, as explained below.\n\n## License and copyright\n\nSee the `LICENSE` file in the Supervisionary root directory for full details of\nthe MIT open-source license that Supervisionary is licensed under.\n\n## Build instructions\n\nAssuming a semi-recent Rust toolchain installation, first install `cargo-make`:\n\n```shell\nλ \u003e cargo install cargo-make\n```\n\nMoreover, make sure the `wasm32-unknown-unknown` toolchain is installed, as\nfollows:\n\n```shell\nλ \u003e rustup target install wasm32-unknown-unknown\n```\n\nThen to compile all Supervisionary components, do:\n\n```shell\nλ \u003e cargo make build\n```\n\nTo compile and execute Supervisionary's integration tests, do:\n\n```shell\nλ \u003e cargo make integration-tests\n```\n\nTo build Supervisionary documentation, do:\n\n```shell\nλ \u003e cargo make document\n```\n\nNote that generated documentation is placed in `./target/doc` in the\nSupervisionary root directory.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDominicPM%2Fsupervisionary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDominicPM%2Fsupervisionary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDominicPM%2Fsupervisionary/lists"}