◉ Pulse
asterinas avatar
#64 today ▼ 3

asterinas/KVerus

Python AI #formal-verification #llm #rust

KVerus: Scalable and Resilient Formal Verification for Rust Code

Created Jul 30, 2026
Stars
13
Today
+3
Forks
1
Quality
95/100
Momentum
19

README

Fetched from GitHub on Oct 30, 2026, 9:23 PM UTC · README.md

View original on GitHub

Third-party content — Open Source Pulse is not the owner of this repository.

This README belongs to asterinas/KVerus and its contributors. We fetch it directly from the project’s public GitHub repository and display it for reference only. All text, code, images and trademarks remain the property of their respective authors. See the repository for its license terms. Copyright / takedown policy.

KVerus Skills

KVerus is a skill-based workflow for migrating Rust code to formally verified Verus, adding specifications and proofs, repairing verification failures, and auditing the result. Use the skills individually or run the full pipeline with kverus-run.

The workflow-based version presented in the ASE 2026 paper KVerus: Scalable and Resilient Formal Verification Proof Generation for Rust Code is available on the ase-26 branch.

Setup Environment

0. Clone the Repo

$ git clone --recursive https://github.com/asterinas/KVerus.git

1. Prepare the python environment

If you don't have uv installed, please follow the official instructions.

# sync python environment
$ uv sync

2. Install Verus

KVerus depends on the Verus command-line tool. See the official installation guide.

Setup Skills

KVerus ships a set of agent skills (under skills/) that can be installed into any target project for use with Codex or Claude Code.

# Install all skills into a target project (symlink mode, agent target by default)
$ ./scripts/install-skills.sh ~/my-project

# Or on Windows PowerShell:
> .\scripts\install-skills.ps1 ~\my-project

The installer supports copy or symlink mode, Codex and Claude Code targets, selective skill installation, and overwriting existing installations. Run it with --help for details.

Verification Workflow

The recommended entrypoint is the end-to-end pipeline:

$kverus-run target=path/to/file_or_dir verify="<verification command>"

target can be a single .rs file or a directory of Rust files. verify should be the exact command used by the target project to run Verus verification, for example a project-specific cargo verus ... or wrapper command. If out_dir is not provided, kverus-run writes reports under .kverus-run-output/.

Full Pipeline

Rust code
  -> kverus-migrate
  -> kverus-spec
  -> kverus-fix
  -> kverus-eval
  -> kverus-semantic-audit
  -> kverus-postprocess
       -> kverus-strip
  -> verified Verus code + reports

The pipeline migrates Rust to Verus, adds and repairs proofs, evaluates their quality, audits executable semantics, and performs final cleanup. See the skills reference for details. The final report is written to <out_dir>/pipeline_summary.md.

Running Individual Skills

Individual stages can also be invoked for targeted work. See the skills reference and the corresponding SKILL.md for their inputs and constraints.

Quick Example

The verified insertion sort is an end-to-end example from Rust code to verified Verus code, including source files, generated proofs, reproduction commands, and verification results.

Showcase

KVerus has been used in VOSTD, the Asterinas system verification project. The VOSTD pull requests labeled AI-assist were developed using KVerus, with some implemented entirely by KVerus.

Verifying RwMutex

asterinas/vostd#395 demonstrates the core KVerus workflow on sync::rwmutex, taking the implementation from Rust code to fully verified Verus code. The following commits capture the intermediate migration and verification results:

Transition Skill Reference result
3e90e5a → 1baaab0 kverus-migrate 1baaab0 converts sync::rwmutex into a Verus-compatible baseline.
1baaab0 → 6ae195e kverus-spec + kverus-fix 6ae195e adds the specifications and completes the corresponding proofs.

This case focuses on the three core stages: migration, specification, and verification repair. The commits are reference outputs for demonstrating the skills rather than boundaries for the full kverus-run pipeline.

Stripping Redundant Proof Code

asterinas/vostd#633 demonstrates kverus-strip on specs::mm::page_table::cursor::cursor_steps. The skill simplified a single Rust source file, removing 1,075 lines of redundant proof code while keeping verification passing.

This showcase uses tree-sitter-verus for full proof-call discovery. Before starting the agent, install the repository's Python dependencies.

Cite

If you find KVerus useful in your research, please consider citing our ASE 2026 paper:

@inproceedings{10.1145/3832783.3834503,
  author = {Liu, Yuwei and Wan, Xinyi and Wang, Yanhao and Wang, Minghua and Huang, Lin and Wei, Tao},
  title = {KVerus: Scalable and Resilient Formal Verification Proof Generation for Rust Code},
  year = {2026},
  isbn = {9798400728822},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  url = {https://doi.org/10.1145/3832783.3834503},
  doi = {10.1145/3832783.3834503},
  booktitle = {Proceedings of the 41st IEEE/ACM International Conference on Automated Software Engineering},
  pages = {4139–4151},
  numpages = {13},
  keywords = {Formal Verification, Large Language Models, Proof Generation, Rust, Verus},
  location = {Munich, Germany},
  series = {ASE '26}
}
Rendered by GitHub from the repository’s README. Scroll to read the full file.
First trending

Jul 30, 2026

first spotted on the list

Best rank

#17

highest position reached

Appearances

3

times on the trending list

Quality score

95

out of 100

Momentum

19

trend strength indicator

Star velocity

0.14

stars per day since creation

Activity — last 60 days

daily counts, collected every 6 hours
  • Stars
  • Forks
  • Merged PRs
  • Issues
  • Closed issues

Collecting activity data since launch — check back in a few days.

Star history

total stars per snapshot
68101214asterinas/KVerus · Jul 30, 8 AM UTC: 8 starsasterinas/KVerus · Jul 30, 7 PM UTC: 10 starsasterinas/KVerus · Jul 31, 3 AM UTC: 13 stars8 AM5 PM3 AM

Rank history

position on trending · lower is better
#1#10#20#30#40#50#60#70Jul 30, 8 AM UTC: rank #29Jul 30, 7 PM UTC: rank #17Jul 31, 3 AM UTC: rank #648 AM5 PM3 AM

3D card for your website

Live HTML card with a glass surface and pointer tilt. Paste the iframe on any website.

<iframe src="https://www.notionpulse.cc/embed/asterinas/KVerus" width="420" height="240" style="border:0;max-width:100%;background:transparent" loading="lazy" title="asterinas/KVerus — trending on Open Source Pulse"></iframe>

Stars badge

Show current stars in your README or profile. Auto-updates every 6 hours.

asterinas/KVerus stars badge
Markdown
[![asterinas/KVerus](https://www.notionpulse.cc/api/badge/asterinas/KVerus.svg)](https://www.notionpulse.cc/repo/asterinas/KVerus)
HTML
<a href="https://www.notionpulse.cc/repo/asterinas/KVerus"><img src="https://www.notionpulse.cc/api/badge/asterinas/KVerus.svg" alt="asterinas/KVerus stars badge" /></a>

Repository of the Day

#17 Repository of the Day

Repository of the Week

#17 Repository of the Week

Repository of the Month

#17 Repository of the Month