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