Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a new verify-std subcommand to Kani #3231

Merged
merged 8 commits into from
Jun 6, 2024

Conversation

celinval
Copy link
Contributor

@celinval celinval commented Jun 5, 2024

This subcommand will take the path to the standard library.

It will then use cargo build -Z build-std to build the custom standard
library and verify any harness found during the build.

Call out

  • So far I only performed manual tests. I'm going to add a few unit tests and a script in the next revision.

Resolves #3226

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

This subcommand will take the path to the standard library.

It will then use `cargo build -Z build-std` to build the custom standard
library and verify any harness found during the build.
@celinval celinval requested a review from a team as a code owner June 5, 2024 21:29
@github-actions github-actions bot added the Z-BenchCI Tag a PR to run benchmark CI label Jun 5, 2024
@celinval celinval force-pushed the issue-3226-verify-std branch from d7cc38e to 397f8d3 Compare June 5, 2024 21:31
Copy link
Contributor

@jaisnan jaisnan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving for now, thanks for the change. I'm hoping the tests and scripts are going to come next?

@celinval
Copy link
Contributor Author

celinval commented Jun 6, 2024

@jaisnan do you prefer a follow up PR?

@jaisnan
Copy link
Contributor

jaisnan commented Jun 6, 2024

@jaisnan do you prefer a follow up PR?

I do in this case, but only for the sake of speed here.

celinval and others added 4 commits June 6, 2024 10:59
This PR reintroduces the `Invariant` trait as a mechanism for the
specification of type safety invariants. The trait is defined in the
Kani library where we also provide `Invariant` implementations for
primitive types.

In contrast to the previous `Invariant` trait, this version doesn't
require the `Arbitrary` bound (i.e., it has the same requirements as
`Arbitrary`). This way, the user isn't required to provide an
`Arbitrary` implementation in addition to the `Invariant` one.

Related model-checking#3095
I'm wondering if only looking at the last element could be at fault
here.
@celinval celinval enabled auto-merge (squash) June 6, 2024 21:41
@celinval celinval merged commit dcbf3aa into model-checking:main Jun 6, 2024
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Z-BenchCI Tag a PR to run benchmark CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add an option to Kani to verify a custom version of the standard library.
3 participants