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-modelsincludes only a subset ofcore, focusing on modeling fundamental operations rather than providing a complete replacement. - Exact Signatures: Any item that exists in both
core-modelsandcorehas the same type signature, ensuring compatibility with formal verification efforts. - Purely Functional Approach: Where possible,
core-modelsfavors 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-modelsincludes additional helper types and functions to support modeling. These extra items are marked appropriately to distinguish them fromcoredefinitions.
§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