Library prosa.classic.model.schedule.global.jitter.job
Require Import prosa.classic.model.time prosa.classic.model.arrival.basic.task.
From mathcomp Require Import ssrnat ssrbool eqtype.
Require Export prosa.classic.model.arrival.basic.job.
(* Properties of different types of job: *)
Module JobWithJitter.
Import Time.
Export Job.
(* 4) Job of sporadic task with jitter *)
Section ValidSporadicTaskJobWithJitter.
Context {sporadic_task: eqType}.
Variable task_cost: sporadic_task → time.
Variable task_deadline: sporadic_task → time.
Variable task_jitter: sporadic_task → time.
Context {Job: eqType}.
Variable job_cost: Job → time.
Variable job_deadline: Job → time.
Variable job_task: Job → sporadic_task.
Variable job_jitter: Job → time.
Variable j: Job.
(* The job jitter cannot be larger than the task (maximum) jitter.*)
Definition job_jitter_leq_task_jitter :=
job_jitter j ≤ task_jitter (job_task j).
Let j_is_valid_job :=
valid_sporadic_job task_cost task_deadline job_cost job_deadline job_task j.
Definition valid_sporadic_job_with_jitter :=
j_is_valid_job ∧ job_jitter_leq_task_jitter.
End ValidSporadicTaskJobWithJitter.
End JobWithJitter.
From mathcomp Require Import ssrnat ssrbool eqtype.
Require Export prosa.classic.model.arrival.basic.job.
(* Properties of different types of job: *)
Module JobWithJitter.
Import Time.
Export Job.
(* 4) Job of sporadic task with jitter *)
Section ValidSporadicTaskJobWithJitter.
Context {sporadic_task: eqType}.
Variable task_cost: sporadic_task → time.
Variable task_deadline: sporadic_task → time.
Variable task_jitter: sporadic_task → time.
Context {Job: eqType}.
Variable job_cost: Job → time.
Variable job_deadline: Job → time.
Variable job_task: Job → sporadic_task.
Variable job_jitter: Job → time.
Variable j: Job.
(* The job jitter cannot be larger than the task (maximum) jitter.*)
Definition job_jitter_leq_task_jitter :=
job_jitter j ≤ task_jitter (job_task j).
Let j_is_valid_job :=
valid_sporadic_job task_cost task_deadline job_cost job_deadline job_task j.
Definition valid_sporadic_job_with_jitter :=
j_is_valid_job ∧ job_jitter_leq_task_jitter.
End ValidSporadicTaskJobWithJitter.
End JobWithJitter.