Checked byte ranges used by the rustc allocation interpreter.
Failures that upstream represents as a checked-size error or a panic.
- sizeError (error : ABI.SizeError) : MemoryError
- sizeFromNatOverflow (attempted : Nat) : MemoryError
- blockCapacityTooSmall (logicalBytes capacityBytes : Nat) : MemoryError
- blockIndexOutOfBounds (index available : Nat) : MemoryError
- rangeOutOfBounds (finish length : ABI.Size) : MemoryError
- emptyCopyRange : MemoryError
- invalidCopyEncoding : MemoryError
- invalidChunkIterator (start finish : ABI.Size) : MemoryError
- accessOutsideBounds (outerStart outerFinish subStart subFinish : ABI.Size) : MemoryError
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeError a) (Miri.Memory.MemoryError.sizeError b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeError error) (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeError error) (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeError error) (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeError error) (Miri.Memory.MemoryError.rangeOutOfBounds finish length) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeError error) Miri.Memory.MemoryError.emptyCopyRange = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeError error) Miri.Memory.MemoryError.invalidCopyEncoding = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeError error) (Miri.Memory.MemoryError.invalidChunkIterator start finish) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeError error) (Miri.Memory.MemoryError.accessOutsideBounds outerStart outerFinish subStart subFinish) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) (Miri.Memory.MemoryError.sizeError error) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeFromNatOverflow a) (Miri.Memory.MemoryError.sizeFromNatOverflow b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) (Miri.Memory.MemoryError.rangeOutOfBounds finish length) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) Miri.Memory.MemoryError.emptyCopyRange = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) Miri.Memory.MemoryError.invalidCopyEncoding = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) (Miri.Memory.MemoryError.invalidChunkIterator start finish) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) (Miri.Memory.MemoryError.sizeError error) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) (Miri.Memory.MemoryError.rangeOutOfBounds finish length) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) Miri.Memory.MemoryError.emptyCopyRange = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) Miri.Memory.MemoryError.invalidCopyEncoding = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) (Miri.Memory.MemoryError.invalidChunkIterator start finish) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) (Miri.Memory.MemoryError.sizeError error) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) (Miri.Memory.MemoryError.rangeOutOfBounds finish length) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) Miri.Memory.MemoryError.emptyCopyRange = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) Miri.Memory.MemoryError.invalidCopyEncoding = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) (Miri.Memory.MemoryError.invalidChunkIterator start finish) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.rangeOutOfBounds finish length) (Miri.Memory.MemoryError.sizeError error) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.rangeOutOfBounds finish length) (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.rangeOutOfBounds finish length) (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.rangeOutOfBounds finish length) (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.rangeOutOfBounds finish length) Miri.Memory.MemoryError.emptyCopyRange = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.rangeOutOfBounds finish length) Miri.Memory.MemoryError.invalidCopyEncoding = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.rangeOutOfBounds finish length) (Miri.Memory.MemoryError.invalidChunkIterator start finish_1) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.emptyCopyRange (Miri.Memory.MemoryError.sizeError error) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.emptyCopyRange (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.emptyCopyRange (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.emptyCopyRange (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.emptyCopyRange (Miri.Memory.MemoryError.rangeOutOfBounds finish length) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.emptyCopyRange Miri.Memory.MemoryError.emptyCopyRange = isTrue ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.emptyCopyRange Miri.Memory.MemoryError.invalidCopyEncoding = isFalse Miri.Memory.instDecidableEqMemoryError.decEq._proof_59
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.emptyCopyRange (Miri.Memory.MemoryError.invalidChunkIterator start finish) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.emptyCopyRange (Miri.Memory.MemoryError.accessOutsideBounds outerStart outerFinish subStart subFinish) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.invalidCopyEncoding (Miri.Memory.MemoryError.sizeError error) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.invalidCopyEncoding (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.invalidCopyEncoding (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.invalidCopyEncoding (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.invalidCopyEncoding (Miri.Memory.MemoryError.rangeOutOfBounds finish length) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.invalidCopyEncoding Miri.Memory.MemoryError.emptyCopyRange = isFalse Miri.Memory.instDecidableEqMemoryError.decEq._proof_67
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.invalidCopyEncoding Miri.Memory.MemoryError.invalidCopyEncoding = isTrue ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.invalidCopyEncoding (Miri.Memory.MemoryError.invalidChunkIterator start finish) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq Miri.Memory.MemoryError.invalidCopyEncoding (Miri.Memory.MemoryError.accessOutsideBounds outerStart outerFinish subStart subFinish) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.invalidChunkIterator start finish) (Miri.Memory.MemoryError.sizeError error) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.invalidChunkIterator start finish) (Miri.Memory.MemoryError.sizeFromNatOverflow attempted) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.invalidChunkIterator start finish) (Miri.Memory.MemoryError.blockCapacityTooSmall logicalBytes capacityBytes) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.invalidChunkIterator start finish) (Miri.Memory.MemoryError.blockIndexOutOfBounds index available) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.invalidChunkIterator start finish) (Miri.Memory.MemoryError.rangeOutOfBounds finish_1 length) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.invalidChunkIterator start finish) Miri.Memory.MemoryError.emptyCopyRange = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.invalidChunkIterator start finish) Miri.Memory.MemoryError.invalidCopyEncoding = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.accessOutsideBounds outerStart outerFinish subStart subFinish) (Miri.Memory.MemoryError.sizeError error) = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.accessOutsideBounds outerStart outerFinish subStart subFinish) Miri.Memory.MemoryError.emptyCopyRange = isFalse ⋯
- Miri.Memory.instDecidableEqMemoryError.decEq (Miri.Memory.MemoryError.accessOutsideBounds outerStart outerFinish subStart subFinish) Miri.Memory.MemoryError.invalidCopyEncoding = isFalse ⋯
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
An access interval represented by start offset and byte length.
Instances For
@[instance_reducible]
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
Construct an access range from its start and byte size.
Equations
- Miri.Memory.allocRange start size = { start := start, size := size }
Instances For
Checked exclusive end offset, mirroring AllocRange::end and Size addition.
Equations
- range.end = Except.mapError Miri.Memory.MemoryError.sizeError (range.start.add range.size)
Instances For
Descriptive alias for the checked exclusive end offset.
Equations
- range.endExclusive = range.end
Instances For
Checked construction from two endpoints, mirroring Size subtraction.
Equations
- Miri.Memory.AllocRange.fromEndpoints start finish = do let size ← Except.mapError Miri.Memory.MemoryError.sizeError (finish.sub start) pure { start := start, size := size }
Instances For
Return a subrange relative to this interval or report the source assertion failure.
Equations
- One or more equations did not get rendered due to their size.