Library prosa.model.priority.rate_monotonic
(* ----------------------------------[ coqtop ]---------------------------------
Welcome to Coq 8.11.2 (June 2020)
----------------------------------------------------------------------------- *)
Require Export prosa.model.priority.classes.
Require Export prosa.model.task.arrival.sporadic.
Rate-Monotonic Fixed-Priority Policy
Instance RM (Task : TaskType) `{SporadicModel Task} : FP_policy Task :=
{
hep_task (tsk1 tsk2 : Task) := task_min_inter_arrival_time tsk1 ≤ task_min_inter_arrival_time tsk2
}.
{
hep_task (tsk1 tsk2 : Task) := task_min_inter_arrival_time tsk1 ≤ task_min_inter_arrival_time tsk2
}.
In this section, we prove a few basic properties of the RM policy.
Consider sporadic tasks...
...and jobs stemming from these tasks.
RM is reflexive.
Lemma RM_is_reflexive : reflexive_priorities.
(* ----------------------------------[ coqtop ]---------------------------------
1 subgoal (ID 339)
Task : TaskType
H : SporadicModel Task
Job : JobType
H0 : JobTask Job Task
============================
reflexive_priorities
----------------------------------------------------------------------------- *)
Proof. by move⇒ ?; rewrite /hep_job_at /JLFP_to_JLDP /hep_job /FP_to_JLFP /hep_task /RM.
(* ----------------------------------[ coqtop ]---------------------------------
No more subgoals.
----------------------------------------------------------------------------- *)
Qed.
(* ----------------------------------[ coqtop ]---------------------------------
1 subgoal (ID 339)
Task : TaskType
H : SporadicModel Task
Job : JobType
H0 : JobTask Job Task
============================
reflexive_priorities
----------------------------------------------------------------------------- *)
Proof. by move⇒ ?; rewrite /hep_job_at /JLFP_to_JLDP /hep_job /FP_to_JLFP /hep_task /RM.
(* ----------------------------------[ coqtop ]---------------------------------
No more subgoals.
----------------------------------------------------------------------------- *)
Qed.
RM is transitive.
Lemma RM_is_transitive : transitive_priorities.
(* ----------------------------------[ coqtop ]---------------------------------
1 subgoal (ID 347)
Task : TaskType
H : SporadicModel Task
Job : JobType
H0 : JobTask Job Task
============================
transitive_priorities
----------------------------------------------------------------------------- *)
Proof. by intros t y x z; apply leq_trans.
(* ----------------------------------[ coqtop ]---------------------------------
No more subgoals.
----------------------------------------------------------------------------- *)
Qed.
(* ----------------------------------[ coqtop ]---------------------------------
1 subgoal (ID 347)
Task : TaskType
H : SporadicModel Task
Job : JobType
H0 : JobTask Job Task
============================
transitive_priorities
----------------------------------------------------------------------------- *)
Proof. by intros t y x z; apply leq_trans.
(* ----------------------------------[ coqtop ]---------------------------------
No more subgoals.
----------------------------------------------------------------------------- *)
Qed.
RM is total.
Lemma RM_is_total : total_priorities.
(* ----------------------------------[ coqtop ]---------------------------------
1 subgoal (ID 355)
Task : TaskType
H : SporadicModel Task
Job : JobType
H0 : JobTask Job Task
============================
total_priorities
----------------------------------------------------------------------------- *)
Proof. by move⇒ t j1 j2; apply leq_total.
(* ----------------------------------[ coqtop ]---------------------------------
No more subgoals.
----------------------------------------------------------------------------- *)
Qed.
End Properties.
(* ----------------------------------[ coqtop ]---------------------------------
1 subgoal (ID 355)
Task : TaskType
H : SporadicModel Task
Job : JobType
H0 : JobTask Job Task
============================
total_priorities
----------------------------------------------------------------------------- *)
Proof. by move⇒ t j1 j2; apply leq_total.
(* ----------------------------------[ coqtop ]---------------------------------
No more subgoals.
----------------------------------------------------------------------------- *)
Qed.
End Properties.
We add the above lemmas into a "Hint Database" basic_facts, so Coq
will be able to apply them automatically.
Hint Resolve
RM_is_reflexive
RM_is_transitive
RM_is_total
: basic_facts.
RM_is_reflexive
RM_is_transitive
RM_is_total
: basic_facts.