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