Library prosa.analysis.facts.model.overheads.schedule

In this section, we prove a few basic properties of the processor model with explicit overheads.
Section OverheadsProceProperties.

  Local Transparent scheduled_in scheduled_on.

Consider any type of jobs.
  Context {Job: JobType}.
  Context `{JobArrival Job}.
  Context `{JobCost Job}.

First, we prove that that the processor model with overheads is a uni-processor model.
The processor model with overheads is a unit-supply model.
We add the above lemmas into a "Hint Database" basic_rt_facts, so Coq will be able to apply them automatically.
Global Hint Resolve
       overheads_proc_model_is_a_uniprocessor_model
       overheads_proc_model_provides_unit_supply
  : basic_rt_facts.

In this section, we prove basic properties of schedules with explicit overheads.
Section OverheadScheduleProperties.

  Local Transparent scheduled_in scheduled_on.

Consider any type of jobs.
  Context {Job: JobType}.
  Context `{JobArrival Job}.
  Context `{JobCost Job}.

Consider any schedule with explicit overheads.
At any time t, either the processor is idle (no job is scheduled), or some job is scheduled at that time.
  Lemma scheduled_job_dec :
     t,
      scheduled_job sched t = None j, scheduled_job sched t = Some j.

We next prove that the predicate scheduled_at and the function scheduled_job agree.
In this section, we show that, in the stated model with overheads, there are no idle times within a busy interval.
Consider any type of jobs.
  Context {Job: JobType}.
  Context `{JobArrival Job}.
  Context `{JobCost Job}.

Consider a JLFP-policy that indicates a higher-or-equal priority relation, and assume that this relation is reflexive and transitive.
Consider any arrival sequence with consistent non-duplicate arrivals.
Next, consider a schedule, ...
... allow for any work-bearing notion of job readiness, ...
... and assume that the schedule is valid and work-conserving.
Consider an arbitrary job j with positive cost.
  Variable j : Job.
  Hypothesis H_from_arrival_sequence : arrives_in arr_seq j.
  Hypothesis H_job_cost_positive : job_cost_positive j.

Consider any busy interval prefix [t1, t2) of job j.
Then, we prove that, for every time instant within the busy interval prefix, some job is scheduled.
  Lemma job_scheduled_in_busy_interval_prefix :
     t,
      t1 t < t2
       jo,
        scheduled_at sched jo t.
End ScheduledInBusyPrefix.