Expand description
Deep embedding of the VmSpace API.
VmStore is the abstract state of a caller of the crate::mm::vm_space
API: it holds the MetaRegionOwners plus a registry of every owner
object (VmSpaceOwner, CursorOwner, VmIoOwner) the caller
currently has access to.
Op is an ADT enumerating the public exec API of vm_space.rs.
step is a single proof-mode dispatcher: step(s, op) requires
s.inv() and ensures s.inv(). Because Verus chains pre/post
automatically, induction over arbitrary call sequences is implicit: any
program of the form step(s, op0); step(s, op1); ...; step(s, opN);
typechecks iff s.inv() holds at every intermediate state.
§Soundness boundary: _embedded axioms
Each axiom named <exec_function_path>_embedded mirrors the ensures
clause of one public exec function in crate::mm::vm_space. For the
embedding to be sound, every _embedded axiom must accurately reflect
what its exec counterpart guarantees. The naming convention exists so a
reviewer touching either side can grep for the partner. When the exec
verus_spec for Foo::bar changes, search for foo_bar_embedded in
this file and update it.
Internal helpers that don’t mirror an exec function (e.g. axiom_*
lemmas about fresh_id) keep the axiom_ prefix to avoid being
confused with the soundness-boundary axioms.
Structs§
- Cursor
Entry - Per-cursor entry in the store.
- VmIo
Entry - Per-VmIo entry in the store.
- VmStore
- Resource store: the abstract state visible to a caller of the VmSpace API.
Enums§
- Cursor
Kind - Whether a cursor is a read-only
Cursoror a mutableCursorMut. - Cursor
Method - Internal: dispatch tag for [
cursor_method_step] (cursor-only methods). - Cursor
MutRegions Method - Internal: dispatch tag for cursor methods that also touch
MetaRegionOwners.Mapis handled via its own [map_step] because its argument shape (UFrame,PageProperty) doesn’t match the others. - Op
- Public exec API of
ostd::mm::vm_space, lifted to data. - VmIo
Kind - Whether a
VmIoOwnerbacks aVmReaderor aVmWriter.
Functions§
- axiom_
cursor_ entry_ new - axiom_
fresh_ cursor_ id_ not_ in_ dom - axiom_
fresh_ vm_ io_ id_ not_ in_ dom - axiom_
fresh_ vm_ space_ id_ not_ in_ dom - axiom_
vm_ io_ entry_ new - cursor_
find_ next_ embedded - cursor_
jump_ embedded - cursor_
mut_ map_ embedded - cursor_
mut_ protect_ next_ embedded - cursor_
mut_ unmap_ embedded - cursor_
query_ embedded - fresh_
cursor_ id - fresh_
vm_ io_ id - fresh_
vm_ space_ id - smoke_
test - step
- vm_
space_ cursor_ embedded - vm_
space_ cursor_ mut_ embedded - vm_
space_ new_ embedded - vm_
space_ reader_ embedded - vm_
space_ writer_ embedded
Type Aliases§
- Cursor
Id - Logical identifier for a
CursorOwnerin the store. - VmIoId
- Logical identifier for a
VmIoOwnerin the store. - VmSpace
Id - Logical identifier for a
VmSpaceOwnerin the store.