A checked port of the non-host-specific state transitions in Miri's
alloc_addresses/mod.rs. Allocation metadata, liveness, host addresses,
borrow-tracker exposure, and cross-thread clock acquisition remain explicit
caller hooks.
- default : ProvenanceMode
- permissive : ProvenanceMode
- strict : ProvenanceMode
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- managed : AddressSpaceMode
- nativeLib : AddressSpaceMode
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
- liveData : AllocationAddressKind
- typeId : AllocationAddressKind
- dead : AllocationAddressKind
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- kind : AllocationAddressKind
- live : Bool
- size : ABI.Size
- align : ABI.Align
- memoryKind : Option AddressMemoryKind
- thread : AddressThreadId
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- reuse : Bool
Outcome of the source address-reuse Bernoulli draw.
- crossThread : Bool
Outcome of the cross-thread Bernoulli draw, consumed only after reuse.
- poolIndex : Nat
Absolute pool index in the source
begin..endrandom range. - slack : Fin 16
Slack outcome in the source
0..16range for a fresh address.
Instances For
Native libraries supply physical addresses; absence remains an explicit capability requirement.
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- generator : AddressGenerator
- reusePool : ReusePool
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- intToPtrMap : Array InverseAddressEntry
- baseAddr : Array BaseAddressEntry
- provenanceMode : ProvenanceMode
- addressMode : AddressSpaceMode
- generation : Option AddressGenerationState
- preparedNativeBytes : Array (AllocId × PreparedGlobalBytes)
Source native prepared_alloc_bytes, surviving global-memory snapshots.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- reusePool (error : ReusePoolError) : AddressStateError
- addressGenerator (error : AddressGeneratorError) : AddressStateError
- pointerArithmetic (error : PointerError) : AddressStateError
- missingBaseAddress (allocId : AllocId) : AddressStateError
- baseAddressAlreadyCached (allocId : AllocId) (address : UInt64) : AddressStateError
- missingInverseEntry (address : UInt64) : AddressStateError
- inverseEntryMismatch (address : UInt64) (expected actual : AllocId) : AddressStateError
- duplicateAddress (address : UInt64) (existingAllocId newAllocId : AllocId) : AddressStateError
- missingAddressGeneration : AddressStateError
- unexpectedAddressGeneration : AddressStateError
- missingAllocationInfo (allocId : AllocId) : AddressStateError
- missingMemoryKind (allocId : AllocId) : AddressStateError
- deadAllocation (allocId : AllocId) : AddressStateError
- strictAddressLookup : AddressStateError
- strictIntegerToPointerCast : AddressStateError
- missingAllocationSize (allocId : AllocId) : AddressStateError
- missingLivenessStatus (allocId : AllocId) : AddressStateError
- deadAllocationInAddressIndex (allocId : AllocId) : AddressStateError
- externalAddressHookRequired (mode : AddressSpaceMode) : AddressStateError
- borrowTrackerHookRequired (allocId : AllocId) (tag : BorTag) : AddressStateError
- borrowTrackerFailure (allocId : AllocId) (tag : BorTag) (message : String) : AddressStateError
- acquireClockFailure (address : UInt64) (clock : Concurrency.VClock) (message : String) : AddressStateError
- malformedInverseIndex (index length : Nat) : AddressStateError
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
- state : GlobalAddressState
- outcome : Except AddressStateError α
Instances For
A selected cross-thread reuse is not reported as immediately usable until its synchronization hook has completed.
- ready (address : UInt64) : AddressAssignment
- acquireRequired (allocId : AllocId) (address : UInt64) (clock : Concurrency.VClock) : AddressAssignment
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Cache first in baseAddr, then add the nonzero address to the sorted
inverse vector. A duplicate inverse address reports the source unwrap_err
failure after retaining the earlier base-map insertion.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cached fast path precedes allocation-info and random-choice requirements. Managed choices remain explicit; native addresses require external hooks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Complete a cross-thread reuse after the caller has acquired the returned
clock. The address is cached only after successful acquisition, matching the
source's ? before interp_ok.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source alloc_id_from_addr, with allocation-size and liveness lookups as
explicit caller hooks. Negative accesses search from addr.saturating_sub(1).
Only addresses in exposed allocations produce wildcard provenance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source expose_provenance. If borrow tracking is enabled, insertion into
the exposed set precedes the explicit tracker hook result.
Equations
- One or more equations did not get rendered due to their size.
- state.exposeProvenance Miri.Memory.Provenance.wildcard allocationLive? borrowTrackerEnabled tagHook? = (pure { state := state, outcome := Except.ok () }).run
Instances For
Source ptr_from_addr_cast: default mode retains wildcard provenance and
reports the source warning as metadata; strict mode returns the explicit stop.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- state.exposedAllocations = state.exposed
Instances For
The source GC hook only removes entries from the cached id-to-base map. The inverse map and exposed set are already cleared by free.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source ptr_get_alloc. This returns a concrete allocation directly or
resolves wildcard provenance through the exposed inverse map; validity and
allocation bounds are checked by later memory hooks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source free_alloc_id: remove inverse/exposed membership while retaining
the base cache, then offer the freed range to the reuse pool.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Proof interface to the existing inverse-search consumer, exact base case.
Proof interface to the existing inverse-search consumer, interior case.
The selected allocation and a current base cache complete ptr_get_alloc.