Library prosa.analysis.facts.preemption.rtc_threshold.floating

Task's Run to Completion Threshold

In this section, we instantiate function task run to completion threshold for the model with floating non-preemptive regions.
Consider any type of tasks ...
  Context {Task : TaskType}.
  Context `{TaskCost Task}.

... and any type of jobs associated with these tasks.
  Context {Job : JobType}.
  Context `{JobTask Job Task}.
  Context `{JobCost Job}.
  Context `{JobPreemptable Job}.

We assume a task model with floating non-preemptive regions.
  #[local] Existing Instance floating_preemptive_rtc_threshold.

Consider any arrival sequence.
  Variable arr_seq : arrival_sequence Job.

Assume that a job cost cannot be larger than a task cost.
Then, we prove that task_rtct function defines a valid task's run to completion threshold.
  Lemma floating_preemptive_valid_task_run_to_completion_threshold:
     tsk, valid_task_run_to_completion_threshold arr_seq tsk.
  Proof.
    intros; split.
    - by rewrite /task_rtc_bounded_by_cost.
    - intros j ARR TSK.
      apply leq_trans with (job_cost j); rt_eauto.
      by move: TSK ⇒ /eqP <-; apply H_valid_job_cost.
  Qed.

End TaskRTCThresholdFloatingNonPreemptiveRegions.
Global Hint Resolve floating_preemptive_valid_task_run_to_completion_threshold : basic_rt_facts.