Library rt.restructuring.model.schedule.sequential
From rt.restructuring.behavior Require Export schedule.
From rt.restructuring.model Require Export task.
Section PropertyOfSequentiality.
(* Consider any type of job associated with any type of tasks... *)
Context {Job: JobType}.
Context {Task: TaskType}.
Context `{JobTask Job Task}.
(* ... with arrival times and costs ... *)
Context `{JobArrival Job}.
Context `{JobCost Job}.
(* ... and any kind of processor state model. *)
Context {PState: Type}.
Context `{ProcessorState Job PState}.
(* Given a schedule ... *)
Variable sched: schedule PState.
(* ...we say that jobs (or, rather, tasks) are sequential if each task's jobs
are executed in the order they arrived. *)
Definition sequential_jobs :=
∀ (j1 j2: Job) (t: instant),
same_task j1 j2 →
job_arrival j1 < job_arrival j2 →
scheduled_at sched j2 t →
completed_by sched j1 t.
End PropertyOfSequentiality.
From rt.restructuring.model Require Export task.
Section PropertyOfSequentiality.
(* Consider any type of job associated with any type of tasks... *)
Context {Job: JobType}.
Context {Task: TaskType}.
Context `{JobTask Job Task}.
(* ... with arrival times and costs ... *)
Context `{JobArrival Job}.
Context `{JobCost Job}.
(* ... and any kind of processor state model. *)
Context {PState: Type}.
Context `{ProcessorState Job PState}.
(* Given a schedule ... *)
Variable sched: schedule PState.
(* ...we say that jobs (or, rather, tasks) are sequential if each task's jobs
are executed in the order they arrived. *)
Definition sequential_jobs :=
∀ (j1 j2: Job) (t: instant),
same_task j1 j2 →
job_arrival j1 < job_arrival j2 →
scheduled_at sched j2 t →
completed_by sched j1 t.
End PropertyOfSequentiality.