Equations
- Mt.instIsReservationReservation = spec.is_reservation
Equations
- Mt.mk_thread task = { T := T, block_until := fun x => true, task := task }
- Done: {spec : Mt.Spec} → spec.State → Mt.Thread.IterationResult spec
- Panic: {spec : Mt.Spec} → spec.State → Mt.Thread.IterationResult spec
- Running: {spec : Mt.Spec} → spec.State → Mt.Thread spec → Mt.Thread.IterationResult spec
Instances For
Equations
- One or more equations did not get rendered due to their size.
def
Mt.Thread.iterate
{spec : Mt.Spec}
:
Mt.Thread spec → spec.State → Mt.Thread.IterationResult spec
Small wrapper around TaskM.valid. A thread is considered valid
if its underlying task is valid and ensures that it drops its
reservation in the end.
To prove Thread.valid, you should unfold Thread.valid, for example
using rw [Thread.valid] and continue applying the validation theoreoms
for TaskM.valid, like TaskM.valid_bind
Equations
- Mt.Thread.valid thread = Mt.TaskM.valid thread.task Mt.IsReservation.empty thread.block_until fun x r => r = Mt.IsReservation.empty