Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions zerocopy/agent_docs/validation.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,16 @@ usually sufficient.
(token streams) in `zerocopy-derive/src/output_tests.rs`.
- **Formal Verification (Kani):** Place Kani proofs in a `mod proofs` module
within the source file they test.
- **Generated-output exception:** A semantic proof of proc-macro-generated
code may live in a focused child of the consuming source file's inline
`mod proofs` when the defining proc-macro crate cannot invoke its own
macro and the proof requires consumer-crate internals. Keep each concrete
derive invocation beside the harness that verifies its expansion, and
cross-link the consumer proof and generator source so that changes to
either side trigger review. This exception covers only the enumerated
concrete expansions and their linked runtime paths; it does not turn
consumer-side verification into a universal theorem about the generator
or its token output.
- **Purpose:** Use the
[Kani Rust Verifier](https://model-checking.github.io/kani/) to prove the
soundness of `unsafe` code or code relied upon by `unsafe` blocks. Unlike
Expand Down
5 changes: 5 additions & 0 deletions zerocopy/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,11 @@ mod macros;
pub mod pointer;
#[cfg(kani)]
mod proof_support;
#[cfg(kani)]
mod proofs {
#[cfg(feature = "derive")]
mod try_from_bytes_derive;
}
mod r#ref;
mod split_at;
// FIXME(#252): If we make this pub, come up with a better name.
Expand Down
Loading
Loading