Library prosa.analysis.facts.periodic.max_inter_arrival
Periodic Task Model respects the Task Max Inter-Arrival model.
Consider any type of periodic tasks, ...
... any type of jobs associated with the tasks, ...
... and any arrival sequence.
By using each task's period as its maximum inter-arrival time, ...
Global Instance max_inter_eq_period : TaskMaxInterArrival Task :=
{
task_max_inter_arrival_time := task_period
}.
{
task_max_inter_arrival_time := task_period
}.
Remark valid_period_is_valid_max_inter_arrival_time:
∀ tsk, valid_period tsk → positive_task_max_inter_arrival_time tsk.
Proof. trivial. Qed.
∀ tsk, valid_period tsk → positive_task_max_inter_arrival_time tsk.
Proof. trivial. Qed.
... and show that the periodic model respects the task max inter-arrival model.
Remark periodic_model_respects_max_inter_arrival_model:
∀ tsk,
valid_period tsk →
respects_periodic_task_model arr_seq tsk →
valid_task_max_inter_arrival_time arr_seq tsk.
Proof.
intros tsk VALID_PERIOD PERIODIC.
split; first by apply VALID_PERIOD ⇒ //.
intros j ARR TSK IND.
specialize (PERIODIC j); feed_n 3 PERIODIC ⇒ //.
move : PERIODIC ⇒ [j' [ARR' [IND' [TSK' ARRJ']]]].
∃ j'; repeat split ⇒ //.
{ case: (boolP (j == j')) ⇒ [/eqP EQ|NEQ].
- have EQ_IND : (job_index arr_seq j' = job_index arr_seq j) by apply f_equal ⇒ //.
now exfalso; lia.
- now apply /eqP. }
{ have NZ_PERIOD : (task_period tsk > 0) by apply VALID_PERIOD.
rewrite /max_inter_eq_period /task_max_inter_arrival_time ARRJ'.
now lia. }
Qed.
End PeriodicTasksRespectMaxInterArrivalModel.
∀ tsk,
valid_period tsk →
respects_periodic_task_model arr_seq tsk →
valid_task_max_inter_arrival_time arr_seq tsk.
Proof.
intros tsk VALID_PERIOD PERIODIC.
split; first by apply VALID_PERIOD ⇒ //.
intros j ARR TSK IND.
specialize (PERIODIC j); feed_n 3 PERIODIC ⇒ //.
move : PERIODIC ⇒ [j' [ARR' [IND' [TSK' ARRJ']]]].
∃ j'; repeat split ⇒ //.
{ case: (boolP (j == j')) ⇒ [/eqP EQ|NEQ].
- have EQ_IND : (job_index arr_seq j' = job_index arr_seq j) by apply f_equal ⇒ //.
now exfalso; lia.
- now apply /eqP. }
{ have NZ_PERIOD : (task_period tsk > 0) by apply VALID_PERIOD.
rewrite /max_inter_eq_period /task_max_inter_arrival_time ARRJ'.
now lia. }
Qed.
End PeriodicTasksRespectMaxInterArrivalModel.