Expand description
The “standard library” for Verus. Contains various utilities and datatypes for proofs, as well as runtime functionality with specifications. For an introduction to Verus, see the tutorial.
Modules
- Provides sequentially-consistent atomic memory locations with associated ghost state. See the
atomic_with_ghost!
documentation for more information. - Properties of bitwise operators.
- Conversions to/from bytes
- The
calc
macro provides support for reasoning about a structured proof calculation. - ptrDeprecated
- Tools and reasoning principles for raw pointers. The tools here are meant to address “real Rust pointers, including all their subtleties on the Rust Abstract Machine, to the largest extent that is reasonable.”
- Provides specifications for spec closures as relations.
Macros
- Allows you to prove a boolean predicate by assuming its negation and proving a contradiction.
- Prove two maps
map1
andmap2
are equal by proving that their values are equal at each key. - Prove two sequences
s1
ands2
are equal by proving that their elements are equal at each index. - Prove two sets equal by extensionality. Usage is:
- Performs a given atomic operation on a given atomic while providing access to its ghost state.
- The
calc!
macro supports structured proofs through calculations. - Create a map using syntax like
map![key1 => val1, key2 => val, ...]
. - Macro used to temporarily “open” an
AtomicInvariant
object, obtaining the stored value within. - Macro used to temporarily “open” a
LocalInvariant
object, obtaining the stored value within. - Creates a
Seq
containing the given elements.