Library probsa.rt.analysis.independent.task_workload
From probsa.rt.model Require Export events workload.
Section PrTaskWorkloadIndependence.
Context {Ω} {μ : measure Ω}.
Context {Task : TaskType}
{D : TaskDeadline Task}.
Context {Job : finType}
{job_cost : JobCostRV Job Ω μ}
{job_arrival : JobArrivalRV Job Ω μ}
{job_task : JobTask Job Task}.
Variable ts : seq Task.
Hypothesis H_ts_uniq : uniq ts.
Hypothesis H_jobs_from_ts : ∀ (j : Job), job_task j \in ts.
Variable tsk : Task.
Hypothesis H_tsk_in_ts : tsk \in ts.
Hypothesis H_arrival_sequence_uniq : pr_arrival_sequence_uniq.
Hypothesis H_arrivals_consistent : arr_seq_job_arrival_consistent.
Let ξpart := partition_on_ξ μ : Ω_partition.
Hypothesis job_costs_cond_independent :
∀ (ξ : I ξpart) `{!PosProb μ (ξpart◁{ξ})},
independent
[seq mkRvar (restrict μ (ξpart◁{ξ})) (job_cost j) | j <- index_enum Job].
Variable ξ : I ξpart.
Context {ρ : PosProb μ (ξpart◁{ξ})}.
Section PrTaskWorkloadIndependence.
Context {Ω} {μ : measure Ω}.
Context {Task : TaskType}
{D : TaskDeadline Task}.
Context {Job : finType}
{job_cost : JobCostRV Job Ω μ}
{job_arrival : JobArrivalRV Job Ω μ}
{job_task : JobTask Job Task}.
Variable ts : seq Task.
Hypothesis H_ts_uniq : uniq ts.
Hypothesis H_jobs_from_ts : ∀ (j : Job), job_task j \in ts.
Variable tsk : Task.
Hypothesis H_tsk_in_ts : tsk \in ts.
Hypothesis H_arrival_sequence_uniq : pr_arrival_sequence_uniq.
Hypothesis H_arrivals_consistent : arr_seq_job_arrival_consistent.
Let ξpart := partition_on_ξ μ : Ω_partition.
Hypothesis job_costs_cond_independent :
∀ (ξ : I ξpart) `{!PosProb μ (ξpart◁{ξ})},
independent
[seq mkRvar (restrict μ (ξpart◁{ξ})) (job_cost j) | j <- index_enum Job].
Variable ξ : I ξpart.
Context {ρ : PosProb μ (ξpart◁{ξ})}.
... and let pr_task_workload tsk denote the task's conditional
workload (w.r.t. the arrival sequence ξ) in the interval.
Let pr_task_workload (tsk : Task) :=
mkRvar _ (pr_workload_of_task tsk (t1 tsk) (t2 tsk))
: rvar (restrict μ (ξpart◁{ξ})) [eqType of work].
mkRvar _ (pr_workload_of_task tsk (t1 tsk) (t2 tsk))
: rvar (restrict μ (ξpart◁{ξ})) [eqType of work].
Then probabilistic workloads pr_task_workload ⋅ of distinct
tasks in the corresponding intervals are independent.
Lemma pr_task_workload_independence :
independent [seq pr_task_workload tsk | tsk <- ts].
End PrTaskWorkloadIndependence.
independent [seq pr_task_workload tsk | tsk <- ts].
End PrTaskWorkloadIndependence.