Library prosa.model.task.arrival.periodic
The Periodic Task Model
Task Model Parameter for Periods
Consider any type of periodic tasks. 
A valid periodic task has a non-zero period. 
Further, in the context of a set of periodic tasks, ... 
... every task in the set must have a  valid period. 
Next, consider any type of jobs stemming from these tasks ... 
... and an arbitrary arrival sequence of such jobs. 
We say that a task respects the periodic task model if the arrivals of
      its jobs in the arrival sequence are separated by integer multiples of
      the period. 
Given two different jobs j and j' ... 
...that belong to the arrival sequence... 
... and that stem from the given task, ... 
Every task in a set of periodic tasks must satisfy the above
      criterion. 
  Definition taskset_respects_periodic_task_model :=
∀ tsk, tsk \in ts → respects_periodic_task_model tsk.
End ValidPeriodicTaskModel.
∀ tsk, tsk \in ts → respects_periodic_task_model tsk.
End ValidPeriodicTaskModel.
Treating Periodic Tasks as Sporadic Tasks
Any type of periodic tasks ... 
... and their corresponding jobs ... 
... may be interpreted as a type of sporadic tasks by using each task's
      period as its minimum inter-arrival time ... 
  Global Instance periodic_as_sporadic : SporadicModel Task :=
{
task_min_inter_arrival_time := task_period
}.
{
task_min_inter_arrival_time := task_period
}.
... such that the model interpretation is valid, both w.r.t. the minimum
      inter-arrival time parameter ... 
  Remark valid_period_is_valid_inter_arrival_time:
∀ tsk, valid_period tsk → valid_task_min_inter_arrival_time tsk.
 
∀ tsk, valid_period tsk → valid_task_min_inter_arrival_time tsk.
... and the separation of job arrivals. 
  Remark periodic_task_respects_sporadic_task_model:
∀ arr_seq tsk,
respects_periodic_task_model arr_seq tsk → respects_sporadic_task_model arr_seq tsk.
∀ arr_seq tsk,
respects_periodic_task_model arr_seq tsk → respects_sporadic_task_model arr_seq tsk.
For convenience, we state these obvious correspondences also at the level
      of entire task sets. 
  Remark valid_periods_are_valid_inter_arrival_times:
∀ ts, valid_periods ts → valid_taskset_inter_arrival_times ts.
 
Remark periodic_task_sets_respect_sporadic_task_model:
∀ ts arr_seq,
taskset_respects_periodic_task_model ts arr_seq →
taskset_respects_sporadic_task_model ts arr_seq.
End PeriodicTasksAsSporadicTasks.
∀ ts, valid_periods ts → valid_taskset_inter_arrival_times ts.
Remark periodic_task_sets_respect_sporadic_task_model:
∀ ts arr_seq,
taskset_respects_periodic_task_model ts arr_seq →
taskset_respects_sporadic_task_model ts arr_seq.
End PeriodicTasksAsSporadicTasks.