Skip to content

Test CI: Challenge 16 updates#2

Open
kasimte wants to merge 3 commits into
mainfrom
16-draft
Open

Test CI: Challenge 16 updates#2
kasimte wants to merge 3 commits into
mainfrom
16-draft

Conversation

@kasimte
Copy link
Copy Markdown
Owner

@kasimte kasimte commented Mar 26, 2026

Testing CI for updated Challenge 16 harnesses before submitting to upstream PR model-checking#549.

@kasimte kasimte force-pushed the 16-draft branch 3 times, most recently from ef83849 to c7d6c40 Compare March 29, 2026 17:31
This is an automated PR to update Kani metrics.

The metrics have been updated by running `./scripts/run-kani.sh --run
metrics`.

Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
74 harnesses proving safety of all 10 unsafe functions and 17 safe
abstractions listed in Challenge 16, across 13 iterator adapter files.
Unbounded verification via large symbolic arrays, loop contracts, and
inductive decomposition. 4 representative types (u8, (), char,
(char,u8)) cover all behavioral axes of the generic code.
- Remove unused `loop_invariant` import in take.rs and zip.rs
  (#[cfg_attr(kani, kani::loop_invariant(...))] does not require it)
- Rewrite `Zip::get_unchecked` `#[requires(...)]` to avoid `self.index + idx`
  overflow, using subtraction-based bounds
- Clarify "vacuous loop invariant" comments in take.rs and zip.rs — note
  that `true` is intentional and only enables loop-contract mode
- Reword "Loop invariant:" to "Safety argument:" in array_chunks.rs to
  avoid implying a verified invariant where there is none (bounded harness)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant