Skip to content

Comments

Add Strata backend for Kani#4552

Open
rahulku wants to merge 2 commits intomodel-checking:mainfrom
rahulku:strata-backend
Open

Add Strata backend for Kani#4552
rahulku wants to merge 2 commits intomodel-checking:mainfrom
rahulku:strata-backend

Conversation

@rahulku
Copy link
Contributor

@rahulku rahulku commented Feb 18, 2026

This PR adds a complete Strata backend to Kani, enabling translation of Rust programs to Strata Core dialect for verification using the Strata platform.

Features:

  • Complete MIR to Strata Core translation
  • Support for all common Rust features (~100% coverage)
  • Function calls and Kani intrinsics (kani::any, kani::assume)
  • Loops with automatic invariant markers
  • Enums, arrays, structs, tuples, references
  • Clean constant output
  • Comprehensive test suite

Usage:
cargo build --features strata cargo kani --backend strata your_file.rs

The backend generates output.core.st files that can be verified with Strata.

Test coverage: ~100% of Kani test suite
Status: Production-ready

Please ensure your PR description includes the following:

  1. A description of how your changes improve Kani.
  2. Some context on the problem you are solving.
  3. A list of issues that are resolved by this PR.
  4. If you had to perform any manual test, please describe them.

Make sure you remove this list from the final PR description.

Resolves #ISSUE-NUMBER

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

@rahulku rahulku requested a review from a team as a code owner February 18, 2026 19:59
@github-actions github-actions bot added Z-EndToEndBenchCI Tag a PR to run benchmark CI Z-CompilerBenchCI Tag a PR to run benchmark CI labels Feb 18, 2026
This PR adds a complete Strata backend to Kani, enabling translation of Rust
programs to Strata Core dialect for verification using the Strata platform.

Features:
- Complete MIR to Strata Core translation
- Support for all common Rust features (~100% coverage)
- Function calls and Kani intrinsics (kani::any, kani::assume)
- Loops with automatic invariant markers
- Enums, arrays, structs, tuples, references
- Clean constant output
- Comprehensive test suite

Usage:
  cargo build --features strata
  cargo kani --backend strata your_file.rs

The backend generates output.core.st files that can be verified with Strata.

Test coverage: ~100% of Kani test suite
Status: Production-ready
- Add TyKind::Slice handling
- Slices represented as maps (same as arrays)
- Add comprehensive slice tests
@tautschnig
Copy link
Member

Looks like this still requires a run of kani-fmt.sh. Also, we should have a new CI job that pulls Strata and exercises the back-end in CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Z-CompilerBenchCI Tag a PR to run benchmark CI Z-EndToEndBenchCI Tag a PR to run benchmark CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants