Library probsa.rt.analysis.completion
From prosa Require Export analysis.facts.behavior.completion.
From probsa.rt.behavior Require Export job schedule service.
From probsa.rt.behavior Require Export job schedule service.
... and any type of jobs. Assume that the jobs have
probabilistic costs defined by job_cost.
Consider any schedule sched.
Context {PState : ProcessorState Job}.
Variable sched : pr_schedule μ PState.
Lemma completion_monotone :
∀ (j : Job) (t1 t2 : instant) (ω : Ω),
(t1 ≤ t2)%nat →
pr_completed_by sched j t1 ω →
pr_completed_by sched j t2 ω.
Proof.
intros ? ? ? ? LE COMPL.
unfold pr_completed_by in *; simpl in ×.
destruct (job_cost j ω) eqn:JC; last by rewrite JC.
have C := @completion_monotonic
_ (fun j ⇒ odflt 0%nat (job_cost j ω))
PState (sched ω) j t1 t2 LE.
rewrite /completed_by /prosa.behavior.job.job_cost in C.
rewrite JC; rewrite JC in C; rewrite JC in COMPL.
by apply C, COMPL.
Qed.
Variable sched : pr_schedule μ PState.
Lemma completion_monotone :
∀ (j : Job) (t1 t2 : instant) (ω : Ω),
(t1 ≤ t2)%nat →
pr_completed_by sched j t1 ω →
pr_completed_by sched j t2 ω.
Proof.
intros ? ? ? ? LE COMPL.
unfold pr_completed_by in *; simpl in ×.
destruct (job_cost j ω) eqn:JC; last by rewrite JC.
have C := @completion_monotonic
_ (fun j ⇒ odflt 0%nat (job_cost j ω))
PState (sched ω) j t1 t2 LE.
rewrite /completed_by /prosa.behavior.job.job_cost in C.
rewrite JC; rewrite JC in C; rewrite JC in COMPL.
by apply C, COMPL.
Qed.