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
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.

Challenge 25: Verify the safety of VecDeque functions

1 participant