Skip to main content

Module exec_spec

Module exec_spec 

Source
Expand description

This module provides runtime utilities for the compiled executable code of verus_builtin_macros::exec_spec_verified and verus_builtin_macros::exec_spec_unverified.

Macros§

exec_spec_type
exec_spec_unverified
Automatically compiles spec items to exec items, but without proofs of functional correctness. This means that,iIn contrast to exec_spec_verified!, all specifications on compiled executable code generated by exec_spec_unverified! are trusted.
exec_spec_verified
Automatically compiles spec items to exec items, with proofs of functional correctness.

Structs§

ExecMultiset
Multiset<T> is compiled to ExecMultiset<T>.

Enums§

ExecMemContents
MemContents<T> is compiled to ExecMemContents<T>

Traits§

DeepViewClone
Cloned objects have the same deep view
ExecSpecFixedWidthArith
ExecSpecIndex
Spec for executable version of Seq and str indexing.
ExecSpecLen
Spec for executable version of len.
ExecSpecMapDom
Spec for executable version of Map::dom.
ExecSpecMapEmpty
Traits for Map methods Spec for executable version of Map::empty.
ExecSpecMapGet
Spec for executable version of Map::get.
ExecSpecMapIndex
Spec for executable version of Map indexing.
ExecSpecMapInsert
Spec for executable version of Map::insert.
ExecSpecMapRemove
Spec for executable version of Map::remove.
ExecSpecMemContents
Traits for MemContents methods Spec for executable versions of MemContents::is_init, MemContents::is_uninit, and MemContents::value.
ExecSpecMultisetAdd
Spec for executable version of Multiset::add.
ExecSpecMultisetCount
Spec for executable version of Multiset::count.
ExecSpecMultisetEmpty
Spec for executable version of Multiset::empty.
ExecSpecMultisetSingleton
Spec for executable version of Multiset::singleton.
ExecSpecMultisetSub
Spec for executable version of Multiset::sub.
ExecSpecOptionArrow
ExecSpecOptionUnwrap
Traits for Option methods Spec for executable version of Option::unwrap.
ExecSpecResultArrow
ExecSpecSeqAdd
Spec for executable version of Seq::add.
ExecSpecSeqContains
Spec for executable version of Seq::contains.
ExecSpecSeqDropFirst
Spec for executable version of Seq::drop_first.
ExecSpecSeqDropLast
Spec for executable version of Seq::drop_last.
ExecSpecSeqEmpty
Spec for executable version of Seq::empty.
ExecSpecSeqFirst
Spec for executable version of Seq::first.
ExecSpecSeqIndexOf
Spec for executable version of Seq::index_of.
ExecSpecSeqIndexOfFirst
Spec for executable version of Seq::index_of_first.
ExecSpecSeqIndexOfLast
Spec for executable version of Seq::index_of_last.
ExecSpecSeqIsPrefixOf
Spec for executable version of Seq::is_prefix_of.
ExecSpecSeqIsSuffixOf
Spec for executable version of Seq::is_suffix_of.
ExecSpecSeqLast
Spec for executable version of Seq::last.
ExecSpecSeqPush
Spec for executable version of Seq::push.
ExecSpecSeqSkip
Spec for executable version of Seq::skip.
ExecSpecSeqSubrange
Spec for executable version of Seq::subrange.
ExecSpecSeqTake
Spec for executable version of Seq::take.
ExecSpecSeqToMultiset
Spec for executable version of Seq::to_multiset.
ExecSpecSeqUpdate
Spec for executable version of Seq::update.
ExecSpecSetContains
Spec for executable version of Set::contains.
ExecSpecSetDifference
Spec for executable version of Set::difference.
ExecSpecSetEmpty
Traits for Set methods Spec for executable version of Set::empty.
ExecSpecSetInsert
Spec for executable version of Set::insert.
ExecSpecSetIntersect
Spec for executable version of Set::intersect.
ExecSpecSetRemove
Spec for executable version of Set::remove.
ExecSpecSetUnion
Spec for executable version of Set::union.
ExecSpecType
Any spec types used in exec_spec_verified or exec_spec_unverified macros must implement this trait to indicate the corresponding exec type (owned and borrowed versions).
ObeysDeepEq
Types whose Rust equality (==) decides deep-view equality.
ToOwned
ToRef
ToRef and ToOwned are almost the same trait but separated to avoid type inference ambiguities.

Functions§

deep_eq
exec_add
exec_mul
exec_sub

Type Aliases§

SpecString
We use this special alias to tell the exec_spec_verified and exec_spec_unverified macros to compile Seq<char> to String instead of Vec<char>.