Checked Lean model of the pinned rustc allocation initialization mask.
@[reducible, inline]
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- Lazy (state : Bool) : InitMaskBlocks
- Materialized (blocks : InitMaskMaterialized) : InitMaskBlocks
Instances For
Equations
- Miri.Memory.instDecidableEqInitMaskBlocks.decEq (Miri.Memory.InitMaskBlocks.Lazy a) (Miri.Memory.InitMaskBlocks.Lazy b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.Memory.instDecidableEqInitMaskBlocks.decEq (Miri.Memory.InitMaskBlocks.Lazy state) (Miri.Memory.InitMaskBlocks.Materialized blocks) = isFalse ⋯
- Miri.Memory.instDecidableEqInitMaskBlocks.decEq (Miri.Memory.InitMaskBlocks.Materialized blocks) (Miri.Memory.InitMaskBlocks.Lazy state) = isFalse ⋯
- Miri.Memory.instDecidableEqInitMaskBlocks.decEq (Miri.Memory.InitMaskBlocks.Materialized a) (Miri.Memory.InitMaskBlocks.Materialized b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
@[instance_reducible]
@[instance_reducible]
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- Miri.Memory.instReprInitMask = { reprPrec := Miri.Memory.instReprInitMask.repr }
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
- Miri.Memory.instDecidableEqInitChunk.decEq (Miri.Memory.InitChunk.Init start finish) (Miri.Memory.InitChunk.Uninit start_1 finish_1) = isFalse ⋯
- Miri.Memory.instDecidableEqInitChunk.decEq (Miri.Memory.InitChunk.Uninit start finish) (Miri.Memory.InitChunk.Init start_1 finish_1) = isFalse ⋯
Instances For
@[instance_reducible]
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
@[instance_reducible]
@[instance_reducible]
Equations
- Miri.Memory.instReprInitCopy = { reprPrec := Miri.Memory.instReprInitCopy.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- (Miri.Memory.InitChunk.Init a a_1).isInit = true
- (Miri.Memory.InitChunk.Uninit a a_1).isInit = false
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.Memory.InitMask.new size state = { blocks := Miri.Memory.InitMaskBlocks.Lazy state, len := size }
Instances For
Equations
- self.materializedBlockCount = match self.blocks with | Miri.Memory.InitMaskBlocks.Lazy state => 0 | Miri.Memory.InitMaskBlocks.Materialized blocks => blocks.blocks.size
Instances For
Equations
- self.materializedWords = match self.blocks with | Miri.Memory.InitMaskBlocks.Lazy state => none | Miri.Memory.InitMaskBlocks.Materialized blocks => some blocks.blocks
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.
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
def
Miri.Memory.InitMask.applyCopy
(self : InitMask)
(defined : InitCopy)
(range : AllocRange)
(repeatCount : UInt64)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Miri.Memory.InitMask.lazy_initialized_query
(size : ABI.Size)
(range : AllocRange)
(finish : ABI.Size)
(hEnd : range.endExclusive = Except.ok finish)
(hInBounds : finish.bytes ≤ size.bytes)
:
theorem
Miri.Memory.InitMask.lazy_uninitialized_query
(size : ABI.Size)
(range : AllocRange)
(finish : ABI.Size)
(hEnd : range.endExclusive = Except.ok finish)
(hInBounds : finish.bytes ≤ size.bytes)
:
theorem
Miri.Memory.InitMask.full_overwrite_stays_lazy
(size finish : ABI.Size)
(oldState newState : Bool)
(range : AllocRange)
(hEnd : range.endExclusive = Except.ok finish)
(hStart : range.start.bytes = 0)
(hFull : size.bytes ≤ finish.bytes)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Miri.Memory.InitMask.WriteProof.set_range_exists
(mask : InitMask)
(range : AllocRange)
(finish : ABI.Size)
(state : Bool)
(valid : WellFormed mask)
(endpoint : range.endExclusive = Except.ok finish)
(nonempty : range.start.bytes.toNat < finish.bytes.toNat)
(inBounds : finish.bytes.toNat ≤ mask.len.bytes.toNat)
: