{"id":20009889,"url":"https://github.com/plsyssec/ct-wasm-proofs","last_synced_at":"2026-03-07T05:02:25.481Z","repository":{"id":144629386,"uuid":"153167627","full_name":"PLSysSec/ct-wasm-proofs","owner":"PLSysSec","description":"Proofs about the soundness and timing properties of CT-Wasm","archived":false,"fork":false,"pushed_at":"2018-11-06T23:32:21.000Z","size":1387,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-02T01:44:08.369Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Isabelle","has_issues":true,"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/PLSysSec.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":"2018-10-15T19:08:47.000Z","updated_at":"2018-11-15T01:14:04.000Z","dependencies_parsed_at":"2023-07-11T10:47:28.929Z","dependency_job_id":null,"html_url":"https://github.com/PLSysSec/ct-wasm-proofs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PLSysSec/ct-wasm-proofs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLSysSec%2Fct-wasm-proofs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLSysSec%2Fct-wasm-proofs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLSysSec%2Fct-wasm-proofs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLSysSec%2Fct-wasm-proofs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PLSysSec","download_url":"https://codeload.github.com/PLSysSec/ct-wasm-proofs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLSysSec%2Fct-wasm-proofs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30208729,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T03:24:23.086Z","status":"ssl_error","status_checked_at":"2026-03-07T03:23:11.444Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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-13T07:17:23.541Z","updated_at":"2026-03-07T05:02:25.463Z","avatar_url":"https://github.com/PLSysSec.png","language":"Isabelle","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CT-Wasm Proofs\n\nThis repository contains the CT-Wasm model and mechanized proofs of soundness\nand security.\n\nThe CT-WASM Isabelle model may be found in [CT-WASM_model](./CT-WASM_model).\n\n#### Lemmas/definitions mentioned in paper, in order of appearance:\n\n- [`preservation`](./CT-WASM_model/Wasm_Soundness.thy#L5)\n- [`equivp_config_indistinguishable`](./CT-WASM_model/Wasm_Secret_Aux.thy#L1029)\n- [`config_indistinguishable_imp_config_typing`](./CT-WASM_model/Wasm_Secret_Aux.thy#L891)\n- [`equivp_action_indistinguishable`](./CT-WASM_model/Wasm_Secret.thy#L106)\n- [`config_indistinguishable_imp_reduce`](./CT-WASM_model/Wasm_Secret.thy#L2165)\n- [`config_bisimulation`](./CT-WASM_model/Wasm_Secret.thy#L2195)\n- [`config_bisimilar`](./CT-WASM_model/Wasm_Secret.thy#L2201)\n- [`typed_indistinguishable_pairs`](./CT-WASM_model/Wasm_Secret.thy#L2339)\n- [`config_bisimulation_typed_indistinguishable_pairs`](./CT-WASM_model/Wasm_Secret.thy#L2388)\n- [`config_indistinguishable_imp_config_bisimilar`](./CT-WASM_model/Wasm_Secret.thy#L2411)\n- [`config_indistinguishable_trace_noninterference`](./CT-WASM_model/Wasm_Secret.thy#L2430)\n- [`config_is_trace`](./CT-WASM_model/Wasm_Constant_Time.thy#L14)\n- [`config_trace_set`](./CT-WASM_model/Wasm_Constant_Time.thy#L18)\n- [`trace_set_equiv`](./CT-WASM_model/Wasm_Constant_Time.thy#L280)\n- [`constant_time_traces`](./CT-WASM_model/Wasm_Constant_Time.thy#L282)\n- [`config_untrusted_constant_time_traces`](./CT-WASM_model/Wasm_Constant_Time.thy#L285)\n- [`observation`](./CT-WASM_model/Wasm_Constant_Time.thy#L10)\n- [`config_obs_set`](./CT-WASM_model/Wasm_Constant_Time.thy#L216)\n- [`constant_time`](./CT-WASM_model/Wasm_Constant_Time.thy#L244)\n\n#### Running the proofs\n\nTo run the proofs end-to-end, Isabelle2017 is required; you can download an archive from:\nhttps://isabelle.in.tum.de/website-Isabelle2017/index.html\n\nWe provide a ROOT file to run all proofs and generate a summary document.\n\nWith Isabelle downloaded, run:\n\n```bash\ngit clone git@github.com:PLSysSec/ct-wasm-proofs.git\ncd ct-wasm-proofs/CT-WASM_model\n\u003c.../bin/isabelle\u003e build -D ./\n```\n\n\u003e Note: the `isabelle` binary you want to use if you downloaded Isabelle from the\n\u003e above link lives in the `bin` directory. (The binary that lives in the top-level\n\u003e directory is for the IDE and NOT what you want.)\n\n\u003e Note: This build will take a very long time due to the need to bootstrap the\n\u003e full Isabelle environment on the first execution. \n\u003e\n\u003e Moreover, note that existing ROOT files from previous installations of\n\u003e Isabelle2017 may interfere with the build. These may have to be deleted from\n\u003e the `.isabelle` folder that will have been left somewhere in the home\n\u003e directory.\n\nRunning the above commands will produce:\n\n- Summary documents in the `CT-WASM_model/output` directory.\n- Executable type checker `CT-WASM_model/Wasm_Printing/Wasm_Extracted/checker.ml`\n\nFor convenience, we supply a pre-built type checker, session graph, and summary\ndocument in the [prebuilt folder](./prebuilt).\n\n##### Using docker\nFor convenience, we provide a docker image to run the proofs without setting up\nIsabelle in your own environment. Simply run:\n\n```\n./docker-build.sh\n```\n\nThis will produce the same artifacts as the local instructions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplsyssec%2Fct-wasm-proofs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplsyssec%2Fct-wasm-proofs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplsyssec%2Fct-wasm-proofs/lists"}