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

Traits§

DeepViewClone
Cloned objects have the same deep view
ExecSpecEq
Spec for the executable version of equality.
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].
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].
ExecSpecOptionUnwrap
Traits for Option methods Spec for executable version of Option::unwrap.
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).
ToOwned
ToRef
ToRef and ToOwned are almost the same trait but separated to avoid type inference ambiguities.

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