Library prosa.analysis.facts.model.ideal_uni_exceed

In the following section, we prove some general properties about the ideal uniprocessor with exceedance processor state.
In this section, we consider any type of jobs.
  Context `{Job : JobType}.

First we prove that the processor state provides unit supply.
The usually opaque predicates are made transparent for this section to enable us to prove some processor properties.
  Local Transparent scheduled_in scheduled_on service_on.

A job j is said to be scheduled_at some time t if and only if the processor state at that time is NominalExecution j or ExceedanceExecution j.
Next we prove that the processor model under consideration is a uniprocessor model i.e., only one job can be scheduled at any time instant.
Next, we prove that the processor model under consideration is fully consuming i.e., all the supply offered is consumed by the scheduled job.
Finally we prove that the processor model under consideration is unit service i.e., it provides at most one unit of service at any time instant.
Next, we prove some general properties specific to the ideal uniprocessor with exceedance processor state.
In this section we consider any type of jobs.
  Context `{Job : JobType}.

First let us define the notion of exceedance execution. A processor state is said to be an exceedance execution state if is equal to ExceedanceExecution j for some j.
  Definition is_exceedance_exec (pstate : (exceedance_proc_state Job)) :=
    match pstate with
    | ExceedanceExecution _true
    | _false
    end.

Next, let us consider any schedule of the exceedance_proc_state.
We prove that the schedule being in blackout at any time t is equivalent to the processor state at t being an exceedance execution state.
  Lemma blackout_implies_exceedance_execution t :
    is_blackout sched t = is_exceedance_exec (sched t).

End ExceedanceProcStateProperties1.

Global Hint Resolve
  eps_is_uniproc
  eps_is_unit_supply
  eps_is_fully_consuming
  : basic_rt_facts.