1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! Kani proof harnesses for the *heap-free* fragment of the `VersionVector` wire
//! boundary (S86, revised under the owner's Kani-scope ruling in R-9).
//!
//! Compiled only under `cargo kani` (`cfg(kani)`). Kani is deliberately kept off
//! every path that constructs the `BTreeMap`: symbolic heap structure (insert,
//! node arrays, iteration, drop glue) is what a bit-blasting solver cannot afford,
//! and no determinism patch changes that (the map is already deterministic; the
//! cost is modeling, not ordering). The map-touching parser laws are covered by
//! the shaped property tests in `tests/wire/vector/properties.rs` and driven
//! unbounded by the fuzz targets; the deductive rung for heap-backed code is
//! chartered for Creusot (ruling R-9). What remains here is exactly the fragment
//! the solver is good at: pure arithmetic and the pre-map rejection path.
use VersionVector;
/// The PRD 0007 IMPORTANT-box arithmetic, discharged totally: the required
/// frame-length computation `5 + count * 12` cannot overflow `u64` for any
/// claimed `u32` count, so the O(1) bound check is sound on every target width.
/// Every input shorter than the five-byte header is rejected without panicking,
/// for all lengths zero through four and all contents. This path returns before
/// the map is ever constructed, so it stays within Kani's heap-free scope.