Expand description
core-models
: A Rust Model for the core
Library
core-models
is a simplified, self-contained model of Rust’s core
library. It aims to provide
a purely Rust-based specification of core
’s fundamental operations, making them easier to
understand, analyze, and formally verify. Unlike core
, which may rely on platform-specific
intrinsics and compiler magic, core-models
expresses everything in plain Rust, prioritizing
clarity and explicitness over efficiency.
§Key Features
- Partial Modeling:
core-models
includes only a subset ofcore
, focusing on modeling fundamental operations rather than providing a complete replacement. - Exact Signatures: Any item that exists in both
core-models
andcore
has the same type signature, ensuring compatibility with formal verification efforts. - Purely Functional Approach: Where possible,
core-models
favors functional programming principles, avoiding unnecessary mutation and side effects to facilitate formal reasoning. - Explicit Implementations: Even low-level operations, such as SIMD, are modeled explicitly using Rust constructs like bit arrays and partial maps.
- Extra Abstractions:
core-models
includes additional helper types and functions to support modeling. These extra items are marked appropriately to distinguish them fromcore
definitions.
§Intended Use
core-models
is designed as a reference model for formal verification and reasoning about Rust programs.
By providing a readable, well-specified version of core
’s behavior, it serves as a foundation for
proof assistants and other verification tools.
Re-exports§
pub use core_arch as arch;
Modules§
- abstractions
- This module provides abstractions that are useful for writting specifications in minicore. Currently it provides two abstractions: bits and bit vectors.
- core_
arch - helpers