Skip to content

Challenge 25: Verify safety of VecDeque#564

Open
Samuelsills wants to merge 1 commit intomodel-checking:mainfrom
Samuelsills:challenge-25-vecdeque
Open

Challenge 25: Verify safety of VecDeque#564
Samuelsills wants to merge 1 commit intomodel-checking:mainfrom
Samuelsills:challenge-25-vecdeque

Conversation

@Samuelsills
Copy link

Summary

Verify all 43 functions listed in Challenge 25. 44 Kani proof harnesses, 0 failures.

Part A (13 unsafe functions): Safety contracts and proof_for_contract harnesses for buffer_read, buffer_write, buffer_range, push_unchecked, copy, copy_nonoverlapping, copy_slice, wrap_copy, write_iter, write_iter_wrapping, handle_capacity_increase, from_contiguous_raw_parts_in, abort_shrink.

Part B (30 safe abstractions): Proof harnesses for get, get_mut, swap, reserve, try_reserve, shrink_to, truncate, as_slices, as_mut_slices, range, range_mut, drain, pop_front, pop_back, push_front, push_back, insert, remove, split_off, append, retain_mut, grow, resize_with, make_contiguous, rotate_left, rotate_right, and others.

All harnesses exercise returned values to ensure full unsafe path coverage.

Resolves #286

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

@Samuelsills Samuelsills force-pushed the challenge-25-vecdeque branch from 40ae507 to 10224fd Compare March 24, 2026 16:45
Verify all 43 functions listed in the challenge specification.
44 Kani proof harnesses, 0 failures.

Resolves model-checking#286

By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 and MIT licenses.
@Samuelsills Samuelsills force-pushed the challenge-25-vecdeque branch from 10224fd to 2a16efd Compare March 24, 2026 17:01
@Samuelsills Samuelsills marked this pull request as ready for review March 24, 2026 20:50
@Samuelsills Samuelsills requested a review from a team as a code owner March 24, 2026 20:50
@feliperodri feliperodri added the Challenge Used to tag a challenge label Mar 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Challenge Used to tag a challenge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Challenge 25: Verify the safety of VecDeque functions

2 participants