Library prosa.analysis.facts.periodic.sporadic

Treating Periodic Tasks as Sporadic Tasks

Since the periodic-arrivals assumption is stricter than the sporadic-arrivals assumption (i.e., any periodic arrival sequence is also a valid sporadic arrivals sequence), it is sometimes convenient to apply analyses for sporadic tasks to periodic tasks. We therefore provide an automatic "conversion" of periodic tasks to sporadic tasks, i.e., we tell Coq that it may use a periodic task's task_period parameter also as the task's minimum inter-arrival time task_min_inter_arrival_time parameter.
Any type of periodic tasks ...
  Context {Task : TaskType} `{PeriodicModel Task}.

... and their corresponding jobs from a consistent arrival sequence with non-duplicate arrivals ...
... 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
    }.

... such that the model interpretation is valid, both w.r.t. the minimum inter-arrival time parameter ...
... and the separation of job arrivals.
For convenience, we state these obvious correspondences also at the level of entire task sets.
First, we show that all tasks in a task set with valid periods also have valid min inter-arrival times.
Second, we show that each task in a periodic task set respects the sporadic task model.
We add the periodic_task_respects_sporadic_task_model lemma into a "Hint Database" basic_rt_facts, so Coq will be able to apply it automatically.
Global Hint Extern 1 ⇒ apply periodic_task_respects_sporadic_task_model : basic_rt_facts.