{"id":17760748,"url":"https://github.com/microsoft/verus-proof-synthesis","last_synced_at":"2025-03-15T10:30:51.356Z","repository":{"id":259531492,"uuid":"860251486","full_name":"microsoft/verus-proof-synthesis","owner":"microsoft","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-13T00:05:36.000Z","size":894,"stargazers_count":20,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-13T01:22:09.537Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/microsoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-20T05:14:19.000Z","updated_at":"2025-02-23T22:44:16.000Z","dependencies_parsed_at":"2024-10-26T08:50:27.823Z","dependency_job_id":"7fd3699c-347f-45c1-b32b-053090d9df8f","html_url":"https://github.com/microsoft/verus-proof-synthesis","commit_stats":null,"previous_names":["microsoft/verus-proof-synthesis"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fverus-proof-synthesis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fverus-proof-synthesis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fverus-proof-synthesis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fverus-proof-synthesis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft","download_url":"https://codeload.github.com/microsoft/verus-proof-synthesis/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243718757,"owners_count":20336589,"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":[],"created_at":"2024-10-26T19:11:47.425Z","updated_at":"2025-03-15T10:30:51.350Z","avatar_url":"https://github.com/microsoft.png","language":"Rust","funding_links":[],"categories":["Projects","Verifiers"],"sub_categories":["Verification"],"readme":"# \u003cimg src=\"assets/logo.png\" alt=\"Project logo\" width=\"40\" /\u003e Verus Proof Synthesis\n\n\u003cp align=\"left\"\u003e\n    \u003ca href=\"https://arxiv.org/abs/2409.13082\"\u003e\u003cimg src=\"https://img.shields.io/badge/arXiv-2409.13082-b31b1b.svg?style=for-the-badge\"\u003e\n    \u003ca href=\"https://sites.google.com/view/autoverus\"\u003e\u003cimg src=\"https://img.shields.io/badge/Website-blue.svg?style=for-the-badge\"\u003e\n\u003c/p\u003e\n\n![Framework](assets/framework.png)\n\nThis repository contains code for automated Verus proof synthesis.\n\n* `benchmarks`. This folder contains a number of Rust/Verus proof tasks, including all the 150 proof tasks referred to as \u003ci\u003eVerusBench\u003c/i\u003e in our techreport.\n* `code`. This folder contains the python code that does proof synthesis for Verus.\n* `utils/lynette`. This folder contains a Verus parser that is written to support Verus proof synthesis.\n\n## Pre-requisites\n\n* You need to install [Verus](https://github.com/verus-lang/verus) before using this tool\n* You may need to run `cargo install verusfmt` to install the Verus formatter\n\n## Usage\n\n```bash\npython main.py --input \u003cinput_file\u003e --output \u003coutput_file\u003e --config \u003cconfig_file\u003e \n```\n* `--input` specify a rust file that you want to generate Verus proof for (default: input.rs)\n* `--output` specify a file that you want the final output to be written in (default: output.rs)\n* `--config` specify your configuration. The format of this file is shown in config.json (default: config.json)\n* `--repair` specify the number of debugging rounds before giving up (default: 10) \nThere are a few other parameters that you can set. Try `python main.py -h' to know more.\n\nIn addition to the final output, you will also see a folder prefixed by `intermediate-` that contains all the intermediate files generated by LLM and by our tool.\n\n# Limitations\n1. Currently, we only support synthesizing proof for one file that contains one function at a time. Support for multi-file/multi-function is our ongoing work.\n2. Sometimes, the code generated by LLM may cause our lynette Verus parser to panic.\n3. The output is inherently non-deterministic given the random nature of LLM.\n\n## Further reading\n\n[Our tech-report](https://arxiv.org/abs/2409.13082)\n\n## Contributing\n\nThis project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.\n\nWhen you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\n# Trademarks \n\nThis project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark \u0026 Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrosoft%2Fverus-proof-synthesis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicrosoft%2Fverus-proof-synthesis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrosoft%2Fverus-proof-synthesis/lists"}