Library prosa.model.processor.ideal
The Ideal Uniprocessor Model
Consider any type of jobs. 
We define the ideal "processor state" as an option Job, which means
      that it is either Some j (where j is a Job) or None (which we use
      to indicate an idle instant). 
Based on this definition, we say that a given job j is scheduled in a
      given state s iff s is Some j. 
Next, we connect the just-defined notion of an ideal processor state with
      the generic interface for the processor-state abstraction in Prosa by
      declaring a so-called instance of the ProcessorState typeclass. 
As this is a uniprocessor model, cores are implicitly defined
          as the unit type containing a single element as a placeholder. 
      scheduled_on j s (_ : unit) := ideal_scheduled_at j s;
service_in j s := ideal_service_in j s;
}.
Next Obligation.
rewrite /ideal_service_in /nat_of_bool.
case: ifP H =>//= SOME /existsP[].
by ∃ tt.
Defined.
End State.
service_in j s := ideal_service_in j s;
}.
Next Obligation.
rewrite /ideal_service_in /nat_of_bool.
case: ifP H =>//= SOME /existsP[].
by ∃ tt.
Defined.
End State.
Consider any type of jobs... 
... and any ideal uniprocessor schedule of such jobs. 
We say that the processor is idle at time t iff there is no job being scheduled.