Expand description
This code adds specifications for the standard-library types
alloc::collections::BTreeMap and alloc::collections::BTreeSet.
The specification is only meaningful when the Key obeys our Ord model,
as specified by super::super::laws_cmp::obeys_cmp_spec.
By default, the Verus standard library brings useful axioms
about the behavior of BTreeMap and BTreeSet into the ambient
reasoning context by broadcasting the group
vstd::std_specs::btree::group_btree_axioms.
Structs§
- Cursor
MutModel - The abstract state of a mutable B-tree cursor.
- ExBTree
Map - Specifications for the behavior of
alloc::collections::BTreeMap. - ExBTree
Set - Specifications for the behavior of
alloc::collections::BTreeSet. - ExCursor
Mut - Verus declaration for Rust’s mutable B-tree cursor type.
- ExKeys
- Specifications for the behavior of
alloc::collections::btree_map::Keys. - ExMap
Iter - ExSet
Iter - ExUnordered
KeyError - Verus declaration for the error returned when a cursor insertion would break key ordering.
- ExValues
- Specifications for the behavior of
alloc::collections::btree_map::Values.
Traits§
- BTree
MapAdditional Spec Fns - Cursor
MutSpec Fns - Abstract and prophetic state for mutable B-tree cursors.
Functions§
- _verus_
external_ ⚠fn_ specification_ 713_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ iter - _verus_
external_ ⚠fn_ specification_ 714_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ len - _verus_
external_ ⚠fn_ specification_ 715_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ is__ empty - _verus_
external_ ⚠fn_ specification_ 716__ 60__ 32_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ K_ 44__ 32_ V_ 44__ 32_ A_ 44__ 32__ 62__ 32_ as_ 32_ Clone_ 32__ 62__ 32__ 58__ 58__ 32_ clone - _verus_
external_ ⚠fn_ specification_ 717_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 32__ 62__ 32__ 58__ 58__ 32_ new - _verus_
external_ ⚠fn_ specification_ 718__ 60__ 32_ BTree Map_ 32__ 60__ 32_ K_ 44__ 32_ V_ 32__ 62__ 32_ as_ 32_ core_ 32__ 58__ 58__ 32_ default_ 32__ 58__ 58__ 32_ Default_ 32__ 62__ 32__ 58__ 58__ 32_ default - _verus_
external_ ⚠fn_ specification_ 719_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 44__ 32__ 62__ 32__ 58__ 58__ 32_ insert - _verus_
external_ ⚠fn_ specification_ 720_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ contains__ key_ 32__ 58__ 58__ 32__ 60__ 32_ Q_ 32__ 62_ - _verus_
external_ ⚠fn_ specification_ 721_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ get_ 32__ 58__ 58__ 32__ 60__ 32_ Q_ 32__ 62_ - _verus_
external_ ⚠fn_ specification_ 722_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ remove_ 32__ 58__ 58__ 32__ 60__ 32_ Q_ 32__ 62_ - _verus_
external_ ⚠fn_ specification_ 723_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ get__ mut_ 32__ 58__ 58__ 32__ 60__ 32_ Q_ 32__ 62_ - _verus_
external_ ⚠fn_ specification_ 724_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ clear - _verus_
external_ ⚠fn_ specification_ 725_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ lower__ bound__ mut_ 32__ 58__ 58__ 32__ 60__ 32_ Q_ 32__ 62_ - _verus_
external_ ⚠fn_ specification_ 726_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ upper__ bound__ mut_ 32__ 58__ 58__ 32__ 60__ 32_ Q_ 32__ 62_ - _verus_
external_ ⚠fn_ specification_ 727_ Cursor Mut_ 32__ 58__ 58__ 32__ 60__ 32__ 39_ a_ 44__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ next - _verus_
external_ ⚠fn_ specification_ 728_ Cursor Mut_ 32__ 58__ 58__ 32__ 60__ 32__ 39_ a_ 44__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ prev - _verus_
external_ ⚠fn_ specification_ 729_ Cursor Mut_ 32__ 58__ 58__ 32__ 60__ 32__ 39_ a_ 44__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ peek__ prev - _verus_
external_ ⚠fn_ specification_ 730_ Cursor Mut_ 32__ 58__ 58__ 32__ 60__ 32__ 39_ a_ 44__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ peek__ next - _verus_
external_ ⚠fn_ specification_ 731_ Cursor Mut_ 32__ 58__ 58__ 32__ 60__ 32__ 39_ a_ 44__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 44__ 32__ 62__ 32__ 58__ 58__ 32_ insert__ after - _verus_
external_ ⚠fn_ specification_ 732_ Cursor Mut_ 32__ 58__ 58__ 32__ 60__ 32__ 39_ a_ 44__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 44__ 32__ 62__ 32__ 58__ 58__ 32_ remove__ next - _verus_
external_ ⚠fn_ specification_ 733_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ keys - _verus_
external_ ⚠fn_ specification_ 734_ BTree Map_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ Value_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ values - _verus_
external_ ⚠fn_ specification_ 735_ BTree Set_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ len - _verus_
external_ ⚠fn_ specification_ 736_ BTree Set_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ is__ empty - _verus_
external_ ⚠fn_ specification_ 737__ 60__ 32_ BTree Set_ 32__ 58__ 58__ 32__ 60__ 32_ K_ 44__ 32_ A_ 32__ 62__ 32_ as_ 32_ Clone_ 32__ 62__ 32__ 58__ 58__ 32_ clone - _verus_
external_ ⚠fn_ specification_ 738_ BTree Set_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 32__ 62__ 32__ 58__ 58__ 32_ new - _verus_
external_ ⚠fn_ specification_ 739__ 60__ 32_ BTree Set_ 32__ 60__ 32_ T_ 32__ 62__ 32_ as_ 32_ core_ 32__ 58__ 58__ 32_ default_ 32__ 58__ 58__ 32_ Default_ 32__ 62__ 32__ 58__ 58__ 32_ default - _verus_
external_ ⚠fn_ specification_ 740_ BTree Set_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ insert - _verus_
external_ ⚠fn_ specification_ 741_ BTree Set_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ A_ 44__ 32__ 62__ 32__ 58__ 58__ 32_ contains - _verus_
external_ ⚠fn_ specification_ 742_ BTree Set_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ get_ 32__ 58__ 58__ 32__ 60__ 32_ Q_ 32__ 62_ - _verus_
external_ ⚠fn_ specification_ 743_ BTree Set_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ A_ 44__ 32__ 62__ 32__ 58__ 58__ 32_ remove_ 32__ 58__ 58__ 32__ 60__ 32_ Q_ 32__ 62_ - _verus_
external_ ⚠fn_ specification_ 744_ BTree Set_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ clear - _verus_
external_ ⚠fn_ specification_ 745_ BTree Set_ 32__ 58__ 58__ 32__ 60__ 32_ Key_ 44__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ iter - axiom_
box_ key_ removed - axiom_
btree_ map_ decreases - axiom_
btree_ map_ deepview_ borrow - axiom_
btree_ set_ decreases - axiom_
contains_ box - axiom_
contains_ deref_ key - axiom_
deref_ key_ cmp - axiom_
deref_ key_ ordering_ matches - axiom_
deref_ key_ removed - axiom_
has_ resolved_ cursor - axiom_
increasing_ seq_ meaning - axiom_
key_ obeys_ cmp_ spec_ meaning - axiom_
maps_ box_ key_ to_ value - axiom_
maps_ deref_ key_ to_ value - axiom_
set_ box_ key_ removed - axiom_
set_ box_ key_ to_ value - axiom_
set_ contains_ box - axiom_
set_ contains_ deref_ key - axiom_
set_ deref_ key_ removed - axiom_
set_ deref_ key_ to_ value - axiom_
spec_ btree_ map_ len - axiom_
spec_ btree_ set_ len - before_
lower_ bound - before_
upper_ bound - borrowed_
key_ cmp - borrowed_
key_ mutated - borrowed_
key_ ordering_ matches - borrowed_
key_ removed - btree_
map_ deep_ view_ impl - contains_
borrowed_ key - group_
btree_ axioms - increasing_
seq - into_
iter - into_
iter_ btree_ keys - into_
iter_ keys - into_
iter_ values - key_
fits_ at_ position - key_
obeys_ cmp_ spec - lemma_
borrowed_ key_ mutated_ deref - lemma_
btree_ map_ deepview_ dom - lemma_
btree_ map_ deepview_ properties - lemma_
btree_ map_ deepview_ values - maps_
borrowed_ key_ to_ value - positioned_
at_ lower_ bound - positioned_
at_ upper_ bound - set_
contains_ borrowed_ key - sets_
borrowed_ key_ to_ key - sets_
differ_ by_ borrowed_ key - spec_
btree_ map_ len - spec_
btree_ set_ len