# Library prosa.model.priority.deadline_monotonic

# Deadline-Monotonic Fixed-Priority Policy

Instance DM (Task : TaskType) `{TaskDeadline Task} : FP_policy Task :=

{

hep_task (tsk1 tsk2 : Task) := task_deadline tsk1 ≤ task_deadline tsk2

}.

{

hep_task (tsk1 tsk2 : Task) := task_deadline tsk1 ≤ task_deadline tsk2

}.

In this section, we prove a few basic properties of the DM policy.

Consider any kind of tasks with relative deadlines...

...and jobs stemming from these tasks.

DM is reflexive.

Lemma DM_is_reflexive : reflexive_priorities.

Proof. by move⇒ ?; rewrite /hep_job_at /JLFP_to_JLDP /hep_job /FP_to_JLFP /hep_task /DM. Qed.

Proof. by move⇒ ?; rewrite /hep_job_at /JLFP_to_JLDP /hep_job /FP_to_JLFP /hep_task /DM. Qed.

DM is transitive.

DM is total.

Lemma DM_is_total : total_priorities.

Proof. by move⇒ t j1 j2; apply leq_total. Qed.

End Properties.

Proof. by move⇒ t j1 j2; apply leq_total. 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

DM_is_reflexive

DM_is_transitive

DM_is_total

: basic_facts.

DM_is_reflexive

DM_is_transitive

DM_is_total

: basic_facts.