File tree Expand file tree Collapse file tree 1 file changed +7
-3
lines changed
Expand file tree Collapse file tree 1 file changed +7
-3
lines changed Original file line number Diff line number Diff line change 11# AGENT Instructions
22
3- This repository contains the ` anybytes ` Rust crate.
4-
53## Project Priorities
64
75The project balances a few key goals:
@@ -42,10 +40,16 @@ Kani verification can be expensive. To keep proof times manageable:
4240
4341* Write focused harnesses that verify one small property.
4442* Use bounded loops and avoid unbounded recursion.
43+ * When generating nondeterministic data in proofs, use ` kani::any() ` for
44+ primitive types and ` Vec::bounded_any(...) ` /` String::bounded_any(...) ` for
45+ collections. This lets Kani explore the intended state space while bounding
46+ otherwise unbounded structures.
47+ * Avoid using fixed constants in Kani proofs. Prefer nondeterministic values
48+ generated with ` kani::any() ` or the bounded constructors so the verifier can
49+ fully explore possible states.
4550* Provide ` kani::assume ` constraints to limit the search space when full exploration is unnecessary.
4651* Break complex checks into separate proofs so failures are easier to diagnose.
4752* All Kani proofs are considered long running and are executed as part of the
4853 ` preflight.sh ` script or in CI.
4954* During development you can run specific harnesses with `cargo kani --harness
5055 <NAME >` to iterate more quickly.
51-
You can’t perform that action at this time.
0 commit comments